{"version":3,"file":"static/js/main.028861cf.js","mappings":"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,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW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AAE,KAAO,EAAE,KAAO,EAAE,IAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,GAEh8CA,IACtD1zP,EAASv0E,KAAKspU,EAAmBrB,GAAWU,EAAeV,GAAS12T,MAAK,KACxE+3T,EAAmBrB,GAAW,CAAC,IAC5BzlU,IAEH,aADO8mU,EAAmBrB,GACpBzlU,CAAC,IAET,CArE0C,YCA3CilU,oBAAoB/uT,EAAIjV,SAAS+lU,SAAW7iT,KAAKtmB,SAASgG,KAK1D,IAAIojU,EAAkB,CACrB,IAAK,GAGNhC,oBAAoBjpQ,EAAEy4D,EAAI,CAACgxM,EAAS1zP,KAElC,IAAIm1P,EAAqBjC,oBAAoBzhT,EAAEyjT,EAAiBxB,GAAWwB,EAAgBxB,QAAWhqV,EACtG,GAA0B,IAAvByrV,EAGF,GAAGA,EACFn1P,EAASv0E,KAAK0pU,EAAmB,SAEjC,GAAI,4CAA4Cv+T,KAAK88T,GAyB9CwB,EAAgBxB,GAAW,MAzB6B,CAE9D,IAAIn6T,EAAU,IAAIqD,SAAQ,CAACG,EAASg1B,IAAYojS,EAAqBD,EAAgBxB,GAAW,CAAC32T,EAASg1B,KAC1GiuC,EAASv0E,KAAK0pU,EAAmB,GAAK57T,GAGtC,IAAIpvB,EAAM+oV,oBAAoBthT,EAAIshT,oBAAoB9iL,EAAEsjL,GAEpD/oU,EAAQ,IAAIvK,MAgBhB8yU,oBAAoBvwM,EAAEx4I,GAfF+9B,IACnB,GAAGgrT,oBAAoBzhT,EAAEyjT,EAAiBxB,KAEf,KAD1ByB,EAAqBD,EAAgBxB,MACRwB,EAAgBxB,QAAWhqV,GACrDyrV,GAAoB,CACtB,IAAIP,EAAY1sT,IAAyB,SAAfA,EAAM1d,KAAkB,UAAY0d,EAAM1d,MAChE4qU,EAAUltT,GAASA,EAAMxZ,QAAUwZ,EAAMxZ,OAAOjH,IACpDkD,EAAMJ,QAAU,iBAAmBmpU,EAAU,cAAgBkB,EAAY,KAAOQ,EAAU,IAC1FzqU,EAAMlK,KAAO,iBACbkK,EAAMH,KAAOoqU,EACbjqU,EAAMtf,QAAU+pV,EAChBD,EAAmB,GAAGxqU,EACvB,CACD,GAEwC,SAAW+oU,EAASA,EAC9D,CAEF,EAcF,IAAI2B,EAAuB,CAACC,EAA4BhsV,KACvD,IAKI6pV,EAAUO,EALV6B,EAAWjsV,EAAK,GAChBksV,EAAclsV,EAAK,GACnBqvG,EAAUrvG,EAAK,GAGIgqB,EAAI,EAC3B,GAAGiiU,EAASh7T,MAAMnN,GAAgC,IAAxB8nU,EAAgB9nU,KAAa,CACtD,IAAI+lU,KAAYqC,EACZtC,oBAAoBzhT,EAAE+jT,EAAarC,KACrCD,oBAAoBjzS,EAAEkzS,GAAYqC,EAAYrC,IAGhD,GAAGx6O,EAAsBA,EAAQu6O,oBAClC,CAEA,IADGoC,GAA4BA,EAA2BhsV,GACrDgqB,EAAIiiU,EAAS9rV,OAAQ6pB,IACzBogU,EAAU6B,EAASjiU,GAChB4/T,oBAAoBzhT,EAAEyjT,EAAiBxB,IAAYwB,EAAgBxB,IACrEwB,EAAgBxB,GAAS,KAE1BwB,EAAgBxB,GAAW,CAC5B,EAIG+B,EAAqBrjT,KAAqB,eAAIA,KAAqB,gBAAK,GAC5EqjT,EAAmBnvT,QAAQ+uT,EAAqB7lT,KAAK,KAAM,IAC3DimT,EAAmBhqU,KAAO4pU,EAAqB7lT,KAAK,KAAMimT,EAAmBhqU,KAAK+jB,KAAKimT,oCCvFtD,qBAAX5pU,OAAyBA,OAA2B,qBAAX+jB,oBAAAA,EAAyBA,oBAAAA,EAAyB,qBAATwC,KAAuBA,KAAO,CAAC,GAAYwgF,eAAe,CAACxlG,GAAG,6HCA/J,MAAMsoU,EAAwBrvT,GACnC3S,OAAOsC,KAAKqQ,GAAKrX,KAAKmH,GAAQ,CAACA,EAAKkQ,EAAIlQ,MAErCzC,OAAOa,UACVb,OAAOa,QAAUmhU,qCCDnB,SAAWlhS,GAET,IAAImhS,EAAiB,KACnBC,EAAc,KAGhB,SAASC,IAAqC,IAArBpsV,EAAcD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAIxC,IAHA,IAAI+qD,EAAO,GACTuhS,EACE,iEACKxiU,EAAI,EAAGA,GAAK7pB,GAAU,GAAI6pB,IACjCihC,GAAQuhS,EAASvuT,OAAOzG,KAAK6K,MAAsBmqT,GAAhBh1T,KAAK0pD,WAE1C,OAAOj2B,CACT,CAMA,SAASwhS,IACP,OAAO,IAAI38U,MAAO8sD,SACpB,CAyBA,SAASiH,EAA4B6oR,GAEnC,IAAKxhS,EAAQ2T,aACX,MAAM,IAAI/nD,MAAM,8BAIlB,IAAI61U,EAlDM,UAkDiBD,EACzBE,EAA+B,OAAdP,EAmBnB,OAlBA9uV,KAAKsvV,UAAYF,EAEjBL,EAASA,GAAUC,KACnBF,EAAYA,GAAa,CAAC,GAChBM,GAAcN,EAAUM,IAAe,GAGjDN,EAAUM,GAAYxqU,KAAK5kB,MAG3BA,KAAK4Z,KAAOw1U,EAAa,OAASJ,IAAoBE,IAGlDG,GAEF1hS,EAAQnsB,iBAAiB,UAAW+tT,EAAO5mT,KAAK3oC,OAAO,GAGlDA,IACT,CA8DA,SAASuvV,EAAOjlR,GACd,IAAIh7C,EAAMg7C,EAAGh7C,IACX4kI,EAAW5pF,EAAG4pF,SACds7L,GAAat7L,EACb10H,EAAM,KAGR,GAAIlQ,EAAIkD,QAAQ,kBAAoB,IAAMg9T,EAAW,CACnD,IACEhwT,EAAMv7B,KAAKw6E,MAAMy1E,EACnB,CAAE,MAAO/wF,GACP,MAAM,IAAI5pD,MAAM,+CAClB,CAKA,GACEimB,EAAIiwT,QAAUV,GACdvvT,EAAI8vT,WACJR,GACAA,EAAUtvT,EAAI8vT,WACd,CACA,IAAII,EAAcZ,EAAUtvT,EAAI8vT,WAChC,IAAK,IAAIzzM,KAAK6zM,GACPA,EAAY7zM,GAAG+L,QAAU8nM,EAAY7zM,GAAGxxE,WAC3CqlR,EAAY7zM,GAAGxxE,UAAU7qC,EAAI9b,SAIjCiqC,EAAQ2T,aAAa+C,WAAW/0C,EAClC,CACF,CACF,CA1FAg3C,EAAiBx5C,UAAUu9C,UAAY,SAAUC,GAAU,EAM3DhE,EAAiBx5C,UAAUqsC,YAAc,SAAU12D,GAEjD,GAAKqsV,EAAL,CAEA,GAAI9uV,KAAK4nJ,OACP,MAAM,IAAIruI,MAAM,oCAKlB,IAAIo2U,EArEN,SAAuBltV,GACrB,MAAO,CACLm8D,UAAWswR,IACXnzG,WAAW,EACXl0N,OAAQ,KACRmvG,cAAe,KACfv0H,KAAMA,EACNm5O,SAAS,EACTC,YAAY,EACZV,kBAAkB,EAClBvuH,YAAa,GACboiC,OAAQrhG,EAAQ1oC,SAAS+pI,OAE7B,CAwDe4gM,CAAcntV,GAGvBitV,EAAcZ,EAAU9uV,KAAKsvV,YAAc,GAC/C,IAAK,IAAIzzM,KAAK6zM,EAERA,EAAY7zM,GAAG+L,QAAU8nM,EAAY7zM,GAAGjiI,OAAS5Z,KAAK4Z,MAEtD81U,EAAY7zM,GAAGxxE,WACjBqlR,EAAY7zM,GAAGxxE,UAAUslR,GAM7B,IAAIE,EAAY,CACdP,UAAWtvV,KAAKsvV,UAChBQ,KAAM9vV,KAAK4Z,KACX61U,MAAOV,EACPrrU,QAASisU,GAEX,IACE,IAAII,EAAa9rV,KAAKC,UAAU2rV,GAC9BG,EAAQ,gBAAkBhB,IAAoB,IAAMhvV,KAAKsvV,UAE3D3hS,EAAQ2T,aAAaE,QAAQwuR,EAAOD,EACtC,CAAE,MAAO5sR,GACP,MAAM,IAAI5pD,MAAM,+CAClB,CAEAg5B,YAAW,WACTob,EAAQ2T,aAAa+C,WAAW2rR,EAClC,GAAG,IAxCmB,CAyCxB,EA+CA1pR,EAAiBx5C,UAAUijB,MAAQ,WACjC/vC,KAAK4nJ,QAAS,EAEd,IAAIv6H,EAAQyhU,EAAU9uV,KAAKsvV,WAAW98T,QAAQxyB,MAC1CqtB,GAAS,GAAGyhU,EAAU9uV,KAAKsvV,WAAW7qP,OAAOp3E,EAAO,GAGnDyhU,EAAU9uV,KAAKsvV,WAAW1sV,eACtBksV,EAAU9uV,KAAKsvV,YAEpBhqR,EAAAA,EAAAA,KAAQwpR,IACVnhS,EAAQ3rB,oBAAoB,UAAWutT,EAAO5mT,KAAK3oC,MAEvD,EAGA2tD,EAAQ2Y,iBAAmB3Y,EAAQ2Y,kBAAoBA,CAGxD,CAnMD,CAmMG/6B,MC3LEnxB,MAAM0S,UAAU64C,gBAEnBvrD,MAAM0S,UAAU64C,cAAgB,SAC9BthD,EACA6tQ,GAEA,IAAK,IAAIzlQ,EAAIzsB,KAAK4C,OAAS,EAAG6pB,GAAK,EAAGA,IACpC,GAAIpI,EAASoB,KAAKysQ,EAASlyR,KAAKysB,GAAIA,EAAGzsB,MACrC,OAAOysB,EAGX,OAAQ,CACV,+DClBF,MAAM,qBAAEwjU,GAAyBvkQ,CAAAA,qBAAAA,cA8CjC,QA5CA,WAIE,GAA6B,eAAzBukQ,EACF,OAGF,MAAM,UAAEC,EAAS,oBAAEC,GAAwBpnT,oBAAAA,EAIzC,IAAUmvG,EAAGttG,EAASvN,EAAGgc,EAFvB62S,IAEQh4M,EAYPlzH,OAZU4lB,EAYFviB,SAXT6vH,EAAEi/G,GACFj/G,EAAEi/G,IACF,YACGj/G,EAAEi/G,GAAGh/G,EAAID,EAAEi/G,GAAGh/G,GAAK,IAAIvzH,KAAKjiB,UAC/B,EACAu1I,EAAEk4M,YAAc,CAAEC,KAAMH,EAAWI,KAAM,GACzCjzT,EAAIuN,EAAE2Y,qBAAqB,QAAQ,IACnClK,EAAIzO,EAAEqD,cAAc,WAClBzrC,MAAQ,EACV62C,EAAEz4B,IAEiB,sCAFPs3H,EAAEk4M,YAAYC,KAEgC,UAFrBn4M,EAAEk4M,YAAYE,KACnDjzT,EAAE6Q,YAAYmL,IAId82S,GAEF,WAEE,SAASI,IACPvrU,OAAOwrU,UAAU5rU,KAAKjiB,UACxB,CAHAqiB,OAAOwrU,UAAYxrU,OAAOwrU,WAAa,GAIvCD,EAAK,KAAM,IAAIh+U,MAEfg+U,EAAK,SAAUJ,EAAqB,CAClCM,gBAAgB,IAElBzrU,OAAOurU,KAAOA,CACf,CAXD,EAaJ,mCC3CO,MCJP,EDMiCG,KAC/B,MAAOC,EAAYC,IAAiBt4Q,EAAAA,EAAAA,GAHN,oBAK9B,SAASu4Q,EAAWrpU,GAClBopU,EAAcppU,EAChB,CAiBA,OAfAF,EAAAA,EAAAA,YAAU,UACWzkB,IAAf8tV,GAGAA,GAIFG,GACF,GACC,CAACH,SAKe9tV,IAAf8tV,EACK,MAIP12U,EAAAA,EAAAA,MAAA,OACE+E,UAAU,cAEVsN,KAAK,SACL,kBAAgB,oBAAmBvsB,SAAA,EAEnCF,EAAAA,EAAAA,KAAA,OACE0mB,GAAG,oBACHvH,UAAU,mDAAkDjf,SAC7D,0EAGDka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,2CAA0Cjf,SAAA,EACvDF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL7sC,KAAK,QACLkE,QAASA,IAAY0tU,GAAW,GAChCzvU,QAAQ,UACRpC,UAAU,OACVkB,UAAU,iBAAgBngB,SAC3B,YAGDF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL7sC,KAAK,QACLmC,QAAQ,WACR+B,QAASA,IAAY0tU,GAAW,GAChC3wU,UAAU,kBAAiBngB,SAC5B,iBAIC,4OExDV,MAAMgxV,GAAQjhS,EAAAA,EAAAA,IAAkB,IAAM,oNAChCkhS,GAASlhS,EAAAA,EAAAA,IAAkB,IAAM,qNACjCmhS,GAAoBnhS,EAAAA,EAAAA,IACxB,IAAM,mIAEFohS,GAAiBphS,EAAAA,EAAAA,IAAkB,IAAM,yLACzCqhS,GAAgBrhS,EAAAA,EAAAA,IAAkB,IAAM,yLACxCshS,GAAathS,EAAAA,EAAAA,IAAkB,IAAM,yLACrCuhS,GAAMvhS,EAAAA,EAAAA,IAAkB,IAAM,wFAC9BwhS,GAAexhS,EAAAA,EAAAA,IAAkB,IAAM,mIAuC7C,MCxDA,EDmBA,WACE,MAAM,WAAExwC,IAAeC,EAAAA,EAAAA,OAChBgyU,IAAwBC,EAAAA,EAAAA,GAC7B7tR,EAAAA,EAAmBoiB,yBAEf0rQ,EAAcF,GAAwBxiS,EAAAA,GAAcjW,OAE1D,OACE7+B,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,CACGuf,IAAczf,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACvuP,GAAI2mU,KAC7B5xV,EAAAA,EAAAA,KAAC61D,EAAAA,SAAQ,CAACC,SAAU,KAAK51D,UACvBka,EAAAA,EAAAA,MAACqgQ,EAAAA,GAAM,CAAAv6Q,SAAA,EACLF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACl0L,OAAK,EAAC4mB,KAAM2lP,EAAAA,GAAgB54S,KAAMhuB,GAAIpL,EAAAA,GAAUC,WAC1D9f,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM6mU,EAAAA,GAAgB/xU,MAAOuwB,UAAW6gT,KAC/ClxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM6mU,EAAAA,GAAgB3jS,OAAQ7d,UAAW8gT,KAChDnxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM6mU,EAAAA,GAAgBp0P,kBACtBptD,UAAW+gT,KAEbpxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM6mU,EAAAA,GAAgBr0P,aAAcntD,UAAWohT,KACtDzxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM6mU,EAAAA,GAAgBv0P,eACtBjtD,UAAWghT,KAEbrxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM6mU,EAAAA,GAAgBj0P,WAAYvtD,UAAWkhT,KACpDvxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM6mU,EAAAA,GAAgBn0P,YAAartD,UAAWmhT,KACrDxxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM6mU,EAAAA,GAAgBt0P,cACtBltD,UAAWihT,KAEbtxV,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAAC/pO,UAAWo6P,EAAAA,WAK5B,+DEtDA,MAQA,EARkBjjR,IAChB,MAAM+5C,EAAc/7C,EAAAA,OAAagC,GAIjC,OAHAhC,EAAAA,WAAgB,KACd+7C,EAAY/5C,QAAUA,CAAO,IAExB+5C,CAAW,ECLduwR,EAA8B,qBAAhBjuQ,YAA8BA,YAAcnxE,KAE1D+sE,EAAMA,IAAMqyQ,EAAKryQ,MAEhB,SAASsyQ,EAAoBvtU,GAAqC,IAA3BikL,EAAG3lM,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIkvV,EAAOlvV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAC7D,MAAMmvV,EAAiBC,EAAU1tU,GAC3B26C,EAAK,IAAOspI,EACZ/rJ,EAAOl3B,EAAAA,OAAa,GACpB2sU,EAAkB3sU,EAAAA,SAElB4sU,EAAgBA,IAAMD,EAAgB3qU,SAAW8qB,aAAa6/S,EAAgB3qU,SAE9EosO,EAAO,CAACnrD,EAAKupJ,EAASC,GAE5B,SAAS7wU,IACPs7B,EAAKl1B,QAAU,EACf4qU,GACF,CAGA,OADA5sU,EAAAA,WAAgB,IAAMpE,GAAMwyO,GACrBpuO,EAAAA,aAAkB,WAEvB,MAAM04B,EAAOp7C,UACPuvV,EAAW5yQ,IAEX75D,EAAOA,KACX82B,EAAKl1B,QAAU6qU,EACfD,IACAH,EAAezqU,QAAQmiB,MAAM,KAAMuU,EAAK,EAGpC12B,EAAUk1B,EAAKl1B,QAErB,GAAIwqU,GAAuB,IAAZxqU,EAAe,OAAO5B,IAErC,GAAIysU,EAAW7qU,EAAU23C,EAAI,CAC3B,GAAI33C,EAAU,EAAG,OAAO5B,IACxB82B,EAAKl1B,QAAU6qU,CACjB,CAGAD,IACAD,EAAgB3qU,QAAUkrB,YAAW,KACnC9sB,IACA82B,EAAKl1B,QAAU,CAAC,GACf23C,EACL,GAAGy0L,EACL,CCpBA,QA3BA,SAAkB5rO,EAAQlE,EAAMq3B,EAAUmoO,GACxC,MAAMgvE,EAAiB9sU,EAAAA,OAAa21B,GAC9Bo3S,EAAgB/sU,EAAAA,OAAa89P,GACnC99P,EAAAA,WAAgB,KACd8sU,EAAe9qU,QAAU2zB,EACzBo3S,EAAc/qU,QAAU87P,CAAO,IAEjC99P,EAAAA,WAAgB,KACd,MAAMgtU,EAAWxqU,GAAU,YAAaA,EAASA,EAAOR,QAAUQ,EAClE,IAAKwqU,EAAU,OACf,IAAIC,EAAiB,EAErB,SAASt3S,IACP,IAAIs3S,EAAJ,CAA2B,QAAAx0S,EAAAn7C,UAAAC,OADRm7C,EAAI,IAAA3jC,MAAA0jC,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAr7C,UAAAq7C,GAEvBm0S,EAAe9qU,QAAQmiB,MAAMxpC,KAAM+9C,EADT,CAE5B,CAEAs0S,EAAS7wT,iBAAiB7d,EAAMq3B,GAChC,MAAMmoO,EAAUivE,EAAc/qU,QAC9B,MAAO,KACLirU,EAAiB,EACjBD,EAASrwT,oBAAoBre,EAAMq3B,GACnCmoO,GAAWA,GAAS,CACrB,GACA,CAACt7P,EAAQlE,GACd,ECzBMuiP,EAAwB,qBAAXlhP,OAAyB,KAAOA,OAE7CutU,EAAaA,SAAsB,IAAhBrsF,EAAIr7M,QAAqBq7M,EAAIr7M,aAA8B,IAApBq7M,EAAIE,YAAyB,EAAIF,EAAIE,YAOrG,EAL+B,WAC7B,MAAM5iP,EF2CD,SAAqB+qE,EAAc+5G,EAAKupJ,GAC7C,MAAMruU,EAAQ6B,EAAAA,SAAekpE,GAC7B,MAAO,CAAC/qE,EAAM,GAAIouU,EAAoBpuU,EAAM,GAAI8kL,EAAKupJ,GACvD,CE9CgBW,CAA8B,qBAAXxtU,OAAyB,EAAIutU,EAD7B5vV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAC2C,GAE/E,OADA8vV,EAASvsF,EAAK,UAAU,IAAM1iP,EAAM,GAAG+uU,OAChC/uU,EAAM,EACf,mCCPA,SAAe3J,EAAAA,EAAAA,IACbha,EAAAA,EAAAA,KAAA,QAAMia,EAAE,0sCACR,6ECQF,MCXA,EDWqC7Z,IACnC,MAAM,SAAEF,EAAQ,QAAE2yV,GAAYzyV,GACxB,WAAEqf,IAAeC,EAAAA,EAAAA,MAEvB,OAAImzU,EAIKpzU,EAAa,KAAQvf,EAGvBuf,EAAcvf,EAAkC,IAAI,6FErB7D,SAAe8Z,EAAAA,EAAAA,IACbha,EAAAA,EAAAA,KAAA,QAAMia,EAAE,+hDACR,6LCMK,MAAM08C,EAAW,qBCTxB,ED4BIm8R,CAAC18R,EAAWC,EAAQC,KACtB,MAAM,UAAEjI,EAAS,KAAEzrD,EAAI,MAAEqhB,EAAK,QAAEuyC,IAAYC,EAAAA,EAAAA,GAG1C,CAACE,EAAUP,EAAW,kBACtBM,EAAAA,EAAAA,GAAgBtnD,EAAAA,IAAwCinD,GACxDC,GAGF,MAAO,CAACE,EAAS5zD,EAAMqhB,EAAOoqC,EAAU,EE5B7BsI,EAAW,kHCIxB,MAAM+P,IAAW97B,EAAAA,EAAAA,KAAoBlZ,IAAG,CACtCqhU,iBAAa/vV,EACbgwV,eAAiBzhT,GACR7f,GAAK/N,IAAiB,CAC3BovU,YAAaxhT,UChBnB,GD4DA,kEEpDA,MAAM0hT,GAAmB,CAACC,EAAeC,GCTzC,GDWsCC,KAIpC,MAAM,YAAE97R,EAAW,UAAEjJ,EAAS,MAAEpqC,EAAK,KAAErhB,IAAS20D,EAAAA,GAAAA,GAC9CjoD,EAAAA,IACA,CAEEikF,UAAWA,KACTja,GAAAA,EAAYkgB,kBAAkB,CAC5B/oE,UAAYptB,GACV4vV,GAAiBxoU,SAASpnB,EAAMszD,SAAS,KAC3C,IAKR,MAAO,EACLa,EAAAA,EAAAA,IAAiBF,GACjB10D,EACAqhB,EACAoqC,EACD,0JE/BH,MA+EA,GA/EqCglS,IAA2C,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC7E,OAAuC,QAAvC1B,EAAQD,EAAa4B,0BAAkB,IAAA3B,GAAY,QAAZC,EAA/BD,EAAiC4B,kBAAU,IAAA3B,OAAZ,EAA/BA,EAA6C4B,iBACnD,KAAKzzV,EAAAA,IAAe0zV,iBAClB,OACEh7U,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,CAAE,gCAC8B,KAC9BF,EAAAA,EAAAA,KAAA,UAAAE,SAC0D,QAD1DszV,EACGH,EAAa4B,mBAAmBC,WAAWz9R,oBAAY,IAAA+7R,OAAA,EAAvDA,EAAyDz5U,OACnD,OAIf,KAAKrY,EAAAA,IAAe2zV,WAClB,OACEj7U,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEF,EAAAA,EAAAA,KAAA,UAAAE,UACe,OAAZmzV,QAAY,IAAZA,GAAgC,QAApBI,EAAZJ,EAAc4B,0BAAkB,IAAAxB,GAAY,QAAZC,EAAhCD,EAAkCyB,kBAAU,IAAAxB,GAAY,QAAZC,EAA5CD,EAA8C4B,kBAAU,IAAA3B,OAA5C,EAAZA,EACG3zU,YAAa,YACT,IAAI,aACH,KACVu1U,EAAAA,GAAAA,GACa,OAAZlC,QAAY,IAAZA,GAAgC,QAApBO,EAAZP,EAAc4B,0BAAkB,IAAArB,GAAY,QAAZC,EAAhCD,EAAkCsB,kBAAU,IAAArB,GAAO,QAAPC,EAA5CD,EAA8CxsQ,aAAK,IAAAysQ,OAAvC,EAAZA,EACI1zP,YACH,IAAI,QACD,KACNhmF,EAAAA,EAAAA,MAAA,UAAAla,SAAA,CACe,OAAZmzV,QAAY,IAAZA,GAAgC,QAApBU,EAAZV,EAAc4B,0BAAkB,IAAAlB,GAAY,QAAZC,EAAhCD,EAAkCmB,kBAAU,IAAAlB,GAAO,QAAPC,EAA5CD,EAA8C3sQ,aAAK,IAAA4sQ,OAAvC,EAAZA,EAAqDj0U,UAAU,IACnD,OAAZqzU,QAAY,IAAZA,GAAgC,QAApBa,EAAZb,EAAc4B,0BAAkB,IAAAf,GAAY,QAAZC,EAAhCD,EAAkCgB,kBAAU,IAAAf,GAAO,QAAPC,EAA5CD,EAA8C9sQ,aAAK,IAAA+sQ,OAAvC,EAAZA,EAAqDr6U,QAC9C,IAAI,OACT,IACQ,OAAZs5U,QAAY,IAAZA,GAAAA,EAAc4B,mBAAmBC,WAAWM,mBAC3Cx1V,EAAAA,EAAAA,KAAA,UAAAE,SAEgB,OAAZmzV,QAAY,IAAZA,OAAY,EAAZA,EAAc4B,mBAAmBC,WAAWM,kBACzCx1U,YAIP,MACA,OAIR,KAAKte,EAAAA,IAAe+zV,WAClB,OACEr7U,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEF,EAAAA,EAAAA,KAAA,UAAAE,UACe,OAAZmzV,QAAY,IAAZA,GAAgC,QAApBgB,EAAZhB,EAAc4B,0BAAkB,IAAAZ,GAAY,QAAZC,EAAhCD,EAAkCa,kBAAU,IAAAZ,GAAY,QAAZC,EAA5CD,EAA8CgB,kBAAU,IAAAf,OAA5C,EAAZA,EACGv0U,YAAa,YACT,IAAI,aACH,KACVu1U,EAAAA,GAAAA,GACa,OAAZlC,QAAY,IAAZA,GAAgC,QAApBmB,EAAZnB,EAAc4B,0BAAkB,IAAAT,GAAY,QAAZC,EAAhCD,EAAkCU,kBAAU,IAAAT,GAAO,QAAPC,EAA5CD,EAA8CptQ,aAAK,IAAAqtQ,OAAvC,EAAZA,EACIt0P,YACH,IAAI,QACD,KACNhmF,EAAAA,EAAAA,MAAA,UAAAla,SAAA,CACe,OAAZmzV,QAAY,IAAZA,GAAgC,QAApBsB,EAAZtB,EAAc4B,0BAAkB,IAAAN,GAAY,QAAZC,EAAhCD,EAAkCO,kBAAU,IAAAN,GAAO,QAAPC,EAA5CD,EAA8CvtQ,aAAK,IAAAwtQ,OAAvC,EAAZA,EAAqD70U,UAAU,IACnD,OAAZqzU,QAAY,IAAZA,GAAgC,QAApByB,EAAZzB,EAAc4B,0BAAkB,IAAAH,GAAY,QAAZC,EAAhCD,EAAkCI,kBAAU,IAAAH,GAAO,QAAPC,EAA5CD,EAA8C1tQ,aAAK,IAAA2tQ,OAAvC,EAAZA,EAAqDj7U,QAC9C,IAAI,OACT,IACQ,OAAZs5U,QAAY,IAAZA,GAAAA,EAAc4B,mBAAmBC,WAAWM,mBAC3Cx1V,EAAAA,EAAAA,KAAA,UAAAE,SAEgB,OAAZmzV,QAAY,IAAZA,OAAY,EAAZA,EAAc4B,mBAAmBC,WAAWM,kBACzCx1U,YAIP,MACA,OAIR,QACE,MAAO,GACX,EClDF,GA3BoCqzU,IAA2C,IAADC,EAAAC,EAAAC,EAAAC,EAC5E,MAAMiC,EAA+C,QAAlCpC,EAAGD,EAAa4B,0BAAkB,IAAA3B,GAAW,QAAXC,EAA/BD,EAAiCqC,iBAAS,IAAApC,OAAX,EAA/BA,EAA4Cx5U,KAClE,OAAuC,QAAvCy5U,EAAQH,EAAa4B,0BAAkB,IAAAzB,GAAW,QAAXC,EAA/BD,EAAiCmC,iBAAS,IAAAlC,OAAX,EAA/BA,EAA4CmC,uBAClD,KAAKxzV,EAAAA,IAAmByzV,OACtB,OACEz7U,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,CAAE,cACUF,EAAAA,EAAAA,KAAA,UAAAE,SAASw1V,IAAuB,kBAGhD,KAAKtzV,EAAAA,IAAmB0zV,UACtB,OACE17U,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,CAAE,cACUF,EAAAA,EAAAA,KAAA,UAAAE,SAASw1V,IAAuB,qBAGhD,KAAKtzV,EAAAA,IAAmB2zV,UACtB,OACE37U,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,CAAE,cACUF,EAAAA,EAAAA,KAAA,UAAAE,SAASw1V,IAAuB,iCAIhD,QACE,MAAO,GACX,ECzBF,GCIErC,IAEA,OAAQA,EAAavvU,MACnB,KAAKhiB,EAAAA,IAAiBk0V,WACpB,OAAOC,GAA4B5C,GACrC,KAAKvxV,EAAAA,IAAiBo0V,UACpB,OAAOC,GAA2B9C,GACpC,QACE,MAAO,GACX,iECLF,MCRA,GDQqCA,IACqB,IAADC,EAAvD,GAAID,EAAavvU,OAAShiB,EAAAA,IAAiBk0V,WACzC,OAAkD,QAAlD1C,EAAQD,EAAa4B,mBAAmBC,kBAAU,IAAA5B,OAAA,EAA1CA,EAA4C6B,iBAClD,KAAKzzV,EAAAA,IAAe0zV,iBAClB,MAAO,KAAMp1V,EAAAA,EAAAA,KAACo2V,GAAAA,EAAW,CAACh3U,KAAM,KAClC,KAAK1d,EAAAA,IAAe2zV,WAClB,MAAO,SAAA9B,EAAAC,EAAA,OACLxzV,EAAAA,EAAAA,KAACq2V,GAAAA,EAAa,CACZj3U,KAAM,GACNJ,UAC4C,QADnCu0U,EACPF,EAAa4B,mBAAmBC,kBAAU,IAAA3B,GAAO,QAAPC,EAA1CD,EAA4ClsQ,aAAK,IAAAmsQ,OAAP,EAA1CA,EACIpzP,WAENnhF,QAAM,GACN,EAEN,KAAKvd,EAAAA,IAAe+zV,WAClB,MAAO,SAAAhC,EAAAC,EAAA,OACL1zV,EAAAA,EAAAA,KAACq2V,GAAAA,EAAa,CACZj3U,KAAM,GACNJ,UAC4C,QADnCy0U,EACPJ,EAAa4B,mBAAmBC,kBAAU,IAAAzB,GAAO,QAAPC,EAA1CD,EAA4CpsQ,aAAK,IAAAqsQ,OAAP,EAA1CA,EACItzP,WAENnhF,QAAM,GACN,EAEN,QACE,OAAO,KAGb,OAAIo0U,EAAavvU,OAAShiB,EAAAA,IAAiBo0V,UAClC,KACLl2V,EAAAA,EAAAA,KAACq2V,GAAAA,EAAa,CACZj3U,KAAM,GACNJ,UAAWne,EAAAA,IAAU8a,oBACrBsD,QAAM,IAIL,IAAI,mCE9Cb,MCFA,GDE6Bo0U,IAAwC,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClE,OAAQN,EAAavvU,MACnB,KAAKhiB,EAAAA,IAAiBk0V,WACpB,OAAOM,GAAAA,EAAgBt2P,OAAO,CAC5BC,aAA6C,QAAjCqzP,EAAED,EAAa4B,0BAAkB,IAAA3B,GAAY,QAAZC,EAA/BD,EAAiC4B,kBAAU,IAAA3B,OAAZ,EAA/BA,EACVgD,gBAER,KAAKz0V,EAAAA,IAAiBo0V,UACpB,OAAOM,EAAAA,GAAmBryQ,QAAQ,CAChCnkE,UAA0C,QAAjCwzU,EAAEH,EAAa4B,0BAAkB,IAAAzB,GAAW,QAAXC,EAA/BD,EAAiCmC,iBAAS,IAAAlC,OAAX,EAA/BA,EACPzzU,UACJiqE,YAA4C,QAAjCypQ,EAAEL,EAAa4B,0BAAkB,IAAAvB,GAAW,QAAXC,EAA/BD,EAAiCiC,iBAAS,IAAAhC,OAAX,EAA/BA,EAA4C9zP,OAE7D,QACE,MAAO,GACX,+FERF,MAAMozP,GAAmB,CAACC,EAAeC,GCTzC,GDWoCsD,KAIlC,MAAM,YAAEn/R,EAAW,UAAEjJ,EAAS,MAAEpqC,EAAK,KAAErhB,IAAS20D,EAAAA,GAAAA,GAC9CroD,EAAAA,IACA,CAEEqkF,UAAWA,KACTja,GAAAA,EAAYkgB,kBAAkB,CAC5B/oE,UAAYptB,GACV4vV,GAAiBxoU,SAASpnB,EAAMszD,SAAS,KAC3C,IAKR,MAAO,EACLa,EAAAA,EAAAA,IAAiBF,GACjB10D,EACAqhB,EACAoqC,EACD,EEhCH,IAAer0C,EAAAA,EAAAA,IACbI,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEF,EAAAA,EAAAA,KAAA,QAAMia,EAAE,ieACRja,EAAAA,EAAAA,KAAA,QAAMia,EAAE,iLAEV,gBCGIg5U,GAAmB,CAACC,EAAeC,GCTzC,GDW+BuD,KAI7B,MAAM,YAAEp/R,EAAW,UAAEjJ,EAAS,MAAEpqC,EAAK,KAAErhB,IAAS20D,EAAAA,GAAAA,GAC9CpoD,EAAAA,IACA,CAEEokF,UAAWA,KACTja,GAAAA,EAAYkgB,kBAAkB,CAC5B/oE,UAAYptB,GACV4vV,GAAiBxoU,SAASpnB,EAAMszD,SAAS,KAC3C,IAKR,MAAO,EACLa,EAAAA,EAAAA,IAAiBF,GACjB10D,EACAqhB,EACAoqC,EACD,gEEJH,MAAMsoS,GAA+Dv2V,IACnE,MAAM,aAAEizV,EAAY,QAAE/vU,GAAYljB,GAC5B,YAAEykB,EAAW,KAAEgoC,EAAI,KAAEkD,GAASvqC,EAAAA,SAAc,KAIzC,CAAEX,YAHW+xU,GAA2BvD,GAGzBxmS,KAFTgqS,GAAoBxD,GAELtjS,KADf+mS,GAAoBzD,MAEhC,CAACA,IAEJ,OACErzV,EAAAA,EAAAA,KAAC+2V,GAAoB,CACnBzzU,QAASA,EACT+vU,aAAcA,EACdxuU,YAAaA,EACbgoC,KAAMA,EACNkD,KAAMA,GACN,EAYOgnS,GACX32V,IAEA,MAAM,aAAEizV,EAAY,YAAExuU,EAAagoC,KAAMrmC,EAAI,KAAEupC,EAAI,QAAEzsC,GAAYljB,GAC3D,yBAAEggE,IAA6B42R,EAAAA,GAAAA,MAC9BC,EAAoB,CAAD,CAAMC,GAC9BT,MACKU,EAAoB,CAAD,CAAMC,GAAiBV,MAC3C,KAAE32R,IAASrgD,EAAAA,EAAAA,MACXqG,EAAKgqC,EAAO,IAAM,MAClBsnS,EAAWhE,EAAa9iT,SAAW1uC,EAAAA,IAAmBy1V,OAEtDC,EAA2B/xU,EAAAA,aAAkB,KACjD,MAAM5iB,EAAyD,CAC7Dod,UAAW+/C,EAAKr5C,GAChB8wU,aAAc,CACZC,cAAe,CAACpE,EAAa3sU,IAC7B6pB,OAAQ8mT,EAAWx1V,EAAAA,IAAmB61V,KAAO71V,EAAAA,IAAmBy1V,SAGpEL,EAAoB,CAACr0V,GAAM,GAC1B,CAACm9D,EAAMszR,EAAcgE,EAAUJ,IAE5BU,EAAsBnyU,EAAAA,aACzB+B,IACCA,EAAEq7B,iBACFr7B,EAAEghH,kBACFgvN,GAA0B,GAE5B,CAACA,IAEGK,EAAgBpyU,EAAAA,aACnB+B,IACCA,EAAEq7B,iBACFr7B,EAAEghH,kBAEF,MAAM3lI,EAAoD,CACxDod,UAAW+/C,EAAKr5C,GAChB+wU,cAAe,CAACpE,EAAa3sU,KAE/BywU,EAAoB,CAACv0V,GAAM,GAE7B,CAACywV,EAActzR,EAAMo3R,IAGjB1nT,EAAcjqB,EAAAA,aAAkB,KAChC6tU,EAAa9iT,SAAW1uC,EAAAA,IAAmBy1V,QAC7CC,IAEK,OAAPj0U,QAAO,IAAPA,GAAAA,GAAW,GACV,CAAC+vU,EAAa9iT,OAAQgnT,EAA0Bj0U,IAEnD,OACElJ,EAAAA,EAAAA,MAAC0L,EAAAA,EAAI,CACHC,GAAIA,EACJkF,GAAI8kC,EACJ5wC,UAAWI,KAAW,uBAAwB,CAC5C,+BAAgC83U,IAElC5qU,KAAK,QACLnJ,QAASmsB,EAAYvvC,SAAA,EAErBF,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,+BAA8Bjf,UAC3CF,EAAAA,EAAAA,KAAA,OACEmf,UAAWI,KAAW,oCAAqC,CACzD,4CAA6C83U,QAIlD7wU,IACCxmB,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,6BAA4Bjf,UACzCF,EAAAA,EAAAA,KAACwmB,EAAI,CAACvH,OAAQo4U,OAIlBj9U,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,6BAA4Bjf,SAAA,CACxCmzV,EAAawE,aACZz9U,EAAAA,EAAAA,MAAC0L,EAAAA,EAAI,CACHoF,MAAM,qBACNnF,GAAG,IACHxE,QAAQ,UACRpC,UAAU,qCACV0B,WAAW,YAAW3gB,SAAA,CAErBkgE,EAAyBizR,EAAawE,YAAY,WAGvD73V,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CACHC,GAAG,IACHmF,MAAM,sBACNrK,WAAW,YACXU,QAAQ,UACRpC,UAAU,oCAAmCjf,SAE5C2kB,QAGLzK,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,gCAA+Bjf,SAAA,EAC5CF,EAAAA,EAAAA,KAAC0rD,GAAAA,EAAO,CAACrqC,QAAO,WAAAvd,OAAauzV,EAAW,OAAS,UAAWn3V,UAC1DF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL9sC,UAAU,wCACV0tC,KAAMA,IACJwqS,GACEr3V,EAAAA,EAAAA,KAAC83V,GAAAA,EAAe,CAAC14U,KAAK,YAEtBpf,EAAAA,EAAAA,KAAC+3V,GAAgB,CAAC34U,KAAK,WAG3BmC,QAAQ,QACRnC,KAAK,SACLkE,QAASq0U,EACTjvU,QAASwuU,EACTn1U,WAAW,yCAGf/hB,EAAAA,EAAAA,KAAC0rD,GAAAA,EAAO,CAACrqC,QAAQ,SAAQnhB,UACvBF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL9sC,UAAU,wCACV0tC,KAAMA,KACJ7sD,EAAAA,EAAAA,KAACg4V,GAAAA,EAAS,CAAC54U,KAAK,SAASsI,WAAW,uBAEtCnG,QAAQ,QACRnC,KAAK,SACLkE,QAASs0U,EACTlvU,QAAS0uU,EACTr1U,WAAW,sCAIZ,EAQEk2U,GACX73V,IAEA,MAAM,aAAEizV,GAAiBjzV,GAClB+2V,EAAoB,CAAD,CAAMC,GAAiBV,MAC3C,KAAE32R,IAASrgD,EAAAA,EAAAA,MACXk4U,EAAgBpyU,EAAAA,aAAkB,KACtC,MAAM5iB,EAAoD,CACxDod,UAAW+/C,EAAKr5C,GAChB+wU,cAAe,CAACpE,EAAa3sU,KAE/BywU,EAAoB,CAACv0V,GAAM,GAC1B,CAACywV,EAActzR,EAAMo3R,IAExB,OACE/8U,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,4CAA2Cjf,SAAA,EACxDka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,sBAAqBjf,SAAA,EAClCF,EAAAA,EAAAA,KAACk4V,GAAAA,EAAW,CAAC/4U,UAAU,UACvBnf,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CAAA5lB,SAAC,mCAERF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL9sC,UAAU,wCACV0tC,KAAMA,KAAM7sD,EAAAA,EAAAA,KAACg4V,GAAAA,EAAS,CAAC54U,KAAK,WAC5BmC,QAAQ,QACRnC,KAAK,SACLkE,QAASs0U,EACTlvU,QAAS0uU,EACTr1U,WAAW,iCAET,EC/NV,GDsOE3hB,IAGEJ,EAAAA,EAAAA,KAACulB,GAAAA,EAAmB,CAClBM,iBACE7lB,EAAAA,EAAAA,KAACi4V,GAAoB,CAAC5E,aAAcjzV,EAAMizV,eAC3CnzV,UAEDF,EAAAA,EAAAA,KAAC22V,GAAqB,IAAKv2V,wCE7OjC,UAAe4Z,EAAAA,EAAAA,IACbI,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEF,EAAAA,EAAAA,KAAA,QACEka,SAAS,UACTC,SAAS,UACTF,EAAE,qrEAEJja,EAAAA,EAAAA,KAAA,QAAMia,EAAE,6UAEV,yDCoBF,MAAMk+U,GAA6C/3V,IACjD,MAAM,gBAAEg4V,GAAoBh4V,GACtB,KAAE2/D,IAASrgD,EAAAA,EAAAA,OACX,qBAAEg8D,EAAoB,wBAAEC,IAC5BL,EAAAA,GAAAA,IAAyB33D,IAAK,CAC5B+3D,qBAAsB/3D,EAAM+3D,qBAC5BC,wBAAyBh4D,EAAMg4D,4BAE7Bo3Q,EAAcsF,IAAe10U,GAAUA,EAAMovU,eAC5CuF,EAAc,CAAD,CAAMC,GACxBnF,KACIp9R,EAAS,CACb2uN,KAAM,EACN6zE,QAAS,IAELzpS,GAAWoiO,EAAAA,GAAAA,GACf,CAACsnE,EAA0BziS,IAC3B50C,IAAA,IAAC,UAAEmxE,EAAY,GAAGnxE,EAAA,OAChB/R,EAAAA,EAAAA,KAAmC,IAC9B2mD,EACH2uN,KAAMpyL,EACNvyE,UAAW+/C,EAAKr5C,IAChB,GACJ,CACEu+P,iBAAmByzE,IAMjB,MAAM,KAAE/zE,EAAI,YAAEg0E,GAAgBD,EAAS91V,KAAKg2V,oBAC5C,GAAIj0E,GAAQg0E,EAAc,EAExB,OAAOh0E,EAAO,CAGA,KAKhB,cAAE8yE,EAAa,UAAEvzE,EAAS,MAAEjgQ,EAAK,QAAEyE,IAAY/I,EAAAA,EAAAA,UAAQ,KAAO,IAAD6jD,EACjE,MAAM0gN,EAAYn1N,EAAS4hO,cACrB1sQ,EAAQ8qC,EAAS9qC,MACjBwzU,GAAgBpvD,EAAAA,EAAAA,MAGnB1jB,IAAI,IAAAk0E,EAAA,OAAc,QAATA,EAAAl0E,EAAK/hR,YAAI,IAAAi2V,OAAA,EAATA,EAAWpB,gBAAiB,EAAE,IAAU,OAAR1oS,QAAQ,IAARA,GAAc,QAANyU,EAARzU,EAAUnsD,YAAI,IAAA4gE,OAAN,EAARA,EAAgB8gN,QAAS,IAOrE,MAAO,CAAEmzE,gBAAevzE,YAAWjgQ,QAAOyE,QAHd,IAAzB+uU,EAAc10V,QAAgBgsD,EAASmqB,YACvCu+Q,EAAc10V,OAAS,IAAa,OAARgsD,QAAQ,IAARA,OAAQ,EAARA,EAAUo1N,oBAEU,GAClD,CAACp1N,IAEJ,OACE30C,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,mBAAkBjf,SAAA,EAC/BF,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CACHvE,QAAQ,YACRV,WAAW,OACXqK,MAAM,oBACN/L,UAAU,OACV4G,GAAG,KAAI7lB,SACR,kBAGA+jB,IACCjkB,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CAACC,GAAG,IAAIlF,WAAW,YAAYsK,MAAM,SAAQjrB,SAAC,kCAInD+jB,IACA7J,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,2BAA0Bjf,SAAA,EACvCF,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CAAC3G,UAAU,kCAAiCjf,UAC9C8+D,EAAAA,GAAAA,IAAS+zR,IAAgBA,EAAc,GACtC34U,EAAAA,EAAAA,MAAC0L,EAAAA,EAAI,CACHvE,QAAQ,UACRV,WAAW,SACXqK,MAAM,oBAAmBhrB,SAAA,CAC1B,WACU,KACTF,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CACHvE,QAAQ,YACR2J,MAAM,oBACNrK,WAAW,OAAM3gB,SAEhB6yV,IACK,IAAI,SACL,KACN73P,EAAAA,GAAAA,GAAU63P,EAAa,eAAgB,qBAG1C/yV,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CAACvE,QAAQ,YAAYV,WAAW,YAAW3gB,SAAC,4BAKrDF,EAAAA,EAAAA,KAAA,UACAoa,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,yCAAwCjf,SAAA,EACpD8+D,EAAAA,GAAAA,IAAS+zR,IAAgBA,EAAc,IACtC/yV,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL1qC,QAAQ,WACRnC,KAAK,SACLytC,KAAMirS,GAAAA,EACN/1U,WAAW,yBACX2G,QAAS6vU,EACTj1U,QAASA,IAAMg1U,EAAc,CAAC,CAAEt4U,UAAW+/C,EAAKr5C,MAAOxmB,SACxD,sBAIHF,EAAAA,EAAAA,KAAC0rD,GAAAA,EAAO,CACNrqC,QAAO,GAAAvd,OACL43E,EAAuB,WAAa,SAAQ,kBAC7Bx7E,UAEjBF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL1qC,QAAQ,WACRnC,KAAK,SACL2C,WAAW,uBACX8qC,KACE6uB,EACIo9Q,EACAC,GAENz1U,QAASA,IAAMq4D,GAAyBD,cAK9ChzD,KAAa+uU,GAA0C,IAAzBA,EAAc10V,SAC5C/C,EAAAA,EAAAA,KAAA,OACEmf,UAAU,+BAA8Bjf,UAGxCF,EAAAA,EAAAA,KAAC0kB,GAAAA,EAAW,CAACC,QAAQ,wBAGzB3kB,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,yBAAwBjf,UACrCF,EAAAA,EAAAA,KAACg5V,GAAAA,EAAmB,CAACtwU,QAASA,EAASD,YAAay7P,EAAUhkR,SAC9C,OAAbu3V,QAAa,IAAbA,OAAa,EAAbA,EAAenvU,KAAK+Z,IACnBriC,EAAAA,EAAAA,KAACi5V,GAAgB,CAEf5F,aAAchxT,EACd/e,QAAS80U,GAFJ/1T,EAAE3b,eASf,ECxLV,GD4LoEtmB,IAEhEJ,EAAAA,EAAAA,KAACulB,GAAAA,EAAmB,CAAArlB,UAClBF,EAAAA,EAAAA,KAACm4V,GAAY,IAAK/3V,ME/LxB,GCU8B84V,KAC5B,MAAOC,EAAcC,IAAmB34U,EAAAA,EAAAA,WAAS,GAC3CsyU,EAAcsF,IAAe10U,GAAUA,EAAMovU,cAC7Cr3Q,GAAuBJ,EAAAA,GAAAA,IAC1B33D,GAAUA,EAAM+3D,uBAInB,MvBI6B29Q,MAC7B,MAAM,WAAE55U,EAAU,KAAEsgD,IAASrgD,EAAAA,EAAAA,MACvBg8D,GAAuBJ,EAAAA,GAAAA,IAC1B33D,GAAUA,EAAM+3D,uBAEbq3Q,EAAcrsR,IAAU/iD,GAAUA,EAAMovU,cACxCC,EAAiBtsR,IAAU/iD,GAAUA,EAAMqvU,iBAC3CsG,EACJ75U,IACCi8D,IACAmQ,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAY0tQ,wCACR,CAAEC,GAAuB1G,EAC9B,CACE9yU,UAAW+/C,EAAKr5C,GAChB6pB,OAAQ1uC,EAAAA,IAAmBy1V,QAE7B,CAAC,EACD,CACEx3T,QAASrgB,EACTirQ,kBAAiB4uE,GAAkB,OAKvC7xU,EAAAA,EAAAA,YAAU,KACR,MAAMgyU,EAAoC,OAAnBD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB52V,MACxCo8D,EAAAA,GAAAA,IAA4B,OAAnBw6R,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB52V,QAChCowV,EAAeyG,GAGX1G,IAAgB0G,GAClBngR,GAAAA,EAAYkgB,kBAAkB,CAACkgQ,IAEnC,GACC,CAAC3G,EAAaC,EAAmC,OAAnBwG,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB52V,MAE3C,EuB1CXy2V,IAGEr5V,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,kBAAiBjf,UAC9Bka,EAAAA,EAAAA,MAACu/U,EAAAA,EAAM,CACLr4U,aAAW,EACXG,QAAQ,SACRD,UAAU,SACVH,SACErhB,EAAAA,EAAAA,KAACm4V,GAAY,CAACC,gBAAiBA,IAAMgB,GAAgB,KAEvDp3U,iBAAe,EACfT,QAAQ,cACRpC,UAAU,kBACVyC,QAASu3U,EACTx3U,kBAAmBA,IAAMy3U,GAAgB,GAAOl5V,SAAA,EAE9Cw7E,IAAwB1c,EAAAA,GAAAA,IAAS+zR,IAAgBA,EAAc,IAC/D/yV,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,yBAAwBjf,UACrCF,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CACHC,GAAG,IACHmF,MAAM,sBACN3J,QAAQ,gBACRV,WAAW,OACXP,WAAW,qBAAoBpgB,SAE9B6yV,OAIP/yV,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACLY,KAAM6uB,EAAuBq9Q,GAAwBD,EACrD15U,KAAK,SACLmC,QAAQ,YACR+B,QAASA,IAAM81U,GAAiBD,GAChCp3U,WAAW,qBAGX,ECvDV,GAAyB,uBCAzB,GAA0B,4BAA1B,GAAkE,gECAlE,SAAuB,kCAAvB,GAAuE,yCAAvE,GAA4H,uCAA5H,GAA4K,oCAA5K,GAAwN,mCAAxN,GAAuQ,uCAAvQ,GAAuT,oCCCvT,GCMqB63U,IACnB,MAAOh3V,EAAM69D,IAAWhgD,EAAAA,EAAAA,UAAmB,OACpCwD,EAAO6kH,IAAYroH,EAAAA,EAAAA,UAAuB,OAC1C4tC,EAAWwrS,IAAgBp5U,EAAAA,EAAAA,WAAkB,GAepD,OAbAgH,EAAAA,EAAAA,YAAU,KACRmyU,EACGtjU,MAAMxN,IACL23C,EAAQ33C,EAAO,IAEhBy5C,OAAO6F,IACN0gE,EAAS1gE,EAAW,IAErB2wD,SAAQ,KACP8gO,GAAa,EAAM,GACnB,GACH,CAACD,IAEG,CAAEh3V,OAAMqhB,QAAOoqC,YAAW,gGCNnC,MClBA,GDkB8CjuD,IAC5C,MAAM,OAAE6e,EAAM,KAAEkmD,EAAI,SAAEjlE,EAAQ,QAAEojB,EAAO,QAAE/B,EAAO,cAAEu4U,EAAa,OAAEzoP,GAC/DjxG,GACI,UAAEiuD,EAAWzrD,KAAMgiB,GAAUm1U,GAAS50R,EAAKomB,WAE1CyuQ,EAAcC,IAAmBh+E,EAAAA,GAAAA,GAAW,CACjDC,SAAUz0K,GAAAA,KAGZjiF,EAAAA,WAAgB,KACD,OAAbs0U,QAAa,IAAbA,GAAAA,EAAgB,CAAE5vU,MAAO+vU,EAAgB/vU,MAAOuF,IAAK01C,EAAK11C,KAAM,GAC/D,CACDwqU,EAAgB/vU,MAChBi7C,EAAKvgD,MACLk1U,EACAzrS,EACA8W,EAAKrN,SACLqN,EAAK11C,MAGP,MAAMyqU,EAAiB10U,EAAAA,aACpB+B,IACMA,EAAEi1N,UACE,OAAPl5N,QAAO,IAAPA,GAAAA,IACAiE,EAAEghH,kBACFhhH,EAAEq7B,iBACJ,GAEF,CAACt/B,IAGH,OACEtjB,EAAAA,EAAAA,KAAA,OACEmjB,IAAK62U,EACL76U,UAAWI,KAAWC,GAAkB,CACtC,CAACA,IAA2B,UAAZ+B,EAChB,CAAC/B,IAAgB6xF,IAChBnxG,UAEDmuD,IACAj0C,EAAAA,EAAAA,MAAA,OAAK+E,UAAWI,KAAWC,IAAoBtf,SAAA,EAC7CF,EAAAA,EAAAA,KAAC8vD,GAAAA,EAAkB,CACjB5uC,KAAOhhB,IAAaF,EAAAA,EAAAA,KAACyrB,EAAAA,GAAI,CAACR,GAAIk6C,EAAKrN,SAAS53D,SAAEA,IAC9CihB,MAAQjhB,GAAaA,EACrB+gB,WAAYhC,EAAO/e,UAEnBF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACT2C,QAAS42U,EACT5uU,SAAUrM,EACVE,UAAWI,KAAWC,GAAa,CACjC,CAACA,IAAgBP,EACjB,CAACO,KAAoBP,KAAYqE,IAEnC1C,SAAS,UACTC,WAAW,MAAK3gB,SAEf0kB,MAIJ1kB,MAGD,mCElFV,SAA4B,kCCC5B,GCYyCE,IACvC,MAAM,OAAE6e,EAAM,KAAEkmD,EAAI,OAAEO,EAAM,cAAEo0R,EAAa,OAAEzoP,GAAWjxG,EAExD,OACEJ,EAAAA,EAAAA,KAACm6V,GAAmB,CAClBh1R,KAAMA,EACNksC,OAAQA,EACRyoP,cAAeA,EACfx2U,QAAUrE,OAAkBjc,EAAT0iE,EACnBzmD,OAAQA,EAAO/e,UAEb+e,IACAjf,EAAAA,EAAAA,KAACo6V,GAAAA,EAAe,CACd1yU,WAAW,sBACXvI,UAAWK,MAGK,EC9B1B,GAA8B,6CAA9B,GAAuF,2CAAvF,GAA8I,2CAA9I,GAAmM,2ECkBnM,MCjBA,GDiBkDpf,IAChD,MAAM,OAAEslE,EAAM,MAAEF,GAAUplE,EAE1B,OACEga,EAAAA,EAAAA,MAAA,OAEE+E,UAAWI,KAAWC,GAAoBA,IAAkBtf,SAAA,EAE5DF,EAAAA,EAAAA,KAAC25V,EAAAA,EAAM,CACLl4U,QAAQ,QACRD,UAAU,eACVD,QAAQ,cACRF,SACErhB,EAAAA,EAAAA,KAAA,OAAKmf,UAAWK,GAAetf,SAC5BslE,EACEjoC,MAAK,CAACC,EAAGC,IACJD,EAAE4C,SAAW3C,EAAE2C,SACV,GAED,IAET9X,KAAI,CAAC68C,EAAMv4C,KACV5sB,EAAAA,EAAAA,KAACm6V,GAAmB,CAClB54U,QAAQ,QAER4jD,KAAMA,EACN7hD,QAASA,IAAMoiD,EAAOP,EAAK/kC,UAC3BnhB,QAAQ,GAAM,GAAAnb,OAHNqhE,EAAKrN,SAAQ,YAAAh0D,OAAWqhE,EAAK11C,UAO9CvvB,UAEDF,EAAAA,EAAAA,KAACq6V,GAAAA,EAAqB,CAACj7U,KAAM,QAE/Bpf,EAAAA,EAAAA,KAACo6V,GAAAA,EAAe,CACd1yU,WAAW,sBACXvI,UAAWK,OAET,gGEhDV,MCRA,GDQ0Cpf,IACxC,MAAM,KAAE+kE,GAAS/kE,GACX,UAAEiuD,EAAWzrD,KAAMgiB,GAAUm1U,GAAS50R,EAAKomB,UAEjD,OACEvrF,EAAAA,EAAAA,KAACs6V,GAAAA,EAAQ,CAACjsS,UAAWA,EAAWE,UAAUvuD,EAAAA,EAAAA,KAAAqa,EAAAA,SAAA,IAAMna,UAC9CF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CAACC,SAAS,aAAaC,WAAW,MAAK3gB,SAC/C0kB,KAEM,EEQF21U,GAA+Bn6V,IAC1C,MAAM,MAAEolE,EAAK,OAAEE,GAAWtlE,GACnB45V,EAAcC,IAAmBh+E,EAAAA,GAAAA,GAAW,CACjDC,SAAUz0K,GAAAA,KAENviC,EAAgD1/C,EAAAA,SAAc,IAC3DggD,EAAMl9C,KAAI,CAAC68C,EAAMv4C,KAAC,IACpBu4C,EACH11C,IAAI,GAAD3rB,OAAKqhE,EAAK11C,IAAG,KAAA3rB,OAAI8oB,GACpBwT,SAAUxT,OAEX,CAAC44C,KACGg1R,EAAaC,GAAkBj1U,EAAAA,SAEpC,IAAI8I,KAEAosU,EAAal1U,EAAAA,OAA6B,OACzCm1U,EAAgBC,GAAiBp1U,EAAAA,SAEtC,CAAC,GACGw0G,EAAYx0G,EAAAA,SAChB,IACEg1U,EAAYp7U,KAAO,EACf66U,EAAgB/vU,MAzBC,GA0BjB+vU,EAAgB/vU,OACtB,CAAC+vU,EAAgB/vU,MAAOswU,EAAYp7U,OAGhCy7U,EAAmBr1U,EAAAA,aAAmBy9C,IAC1C23R,GAAeE,IAAM,IAChBA,EACH,CAAC73R,EAAOxzC,KAAMwzC,EAAO/4C,SACpB,GACF,IAEG6wU,EAAcv1R,EAAMziE,OAqF1B,OAnFAyiB,EAAAA,WAAgB,KACdi1U,EAAe,IAAInsU,IAAM,GACxB,CAACysU,IAEJv1U,EAAAA,WAAgB,KACd,GAAIy0U,EAAgB/vU,MAAQ,GAC1B,OAMF,IAAI8wU,EAAa,EAOjB,IAAK91R,EAAaniE,OAChB,OAGF,MAAMk4V,EAAe/1R,EAAa,GAAGz1C,IAC/ByrU,EAAiBP,EAAeM,GACtC,IAAIE,EAAqCnhO,EAKzC,GAJIkhO,IACFC,GAAsCD,GAGpC11R,EAAMziE,OAAS,EAAG,CACpB,MACMkjE,EAAcf,EADC61R,EAAc,GACYtrU,IACzC2rU,EAAgBT,EAAe10R,IAEjCjH,EAAAA,GAAAA,IAASo8R,KAAmBxrU,MAAMwrU,KACpCD,GAAsCC,EAE1C,CAEA,IAAK,IAAIxuU,EAAImuU,EAAc,EAAGnuU,GAAK,EAAGA,IAAK,CAEzC,GAAU,IAANA,EACF,SAEF,MAAM++D,EAAczmB,EAAat4C,GAC3B6C,EAAMk8D,EAAYl8D,IAClB4rU,EAAYV,EAAelrU,GAEjC,IAAK4rU,EACH,SAGF,GAAIb,EAAYp7U,KAAO,EAAG,CAMxBq7U,GAAgBD,GAAgB,IAAIlsU,IAAIksU,GAAahlS,IAAIm2B,KACzD,QACF,CACA,MAAM2vQ,EAAiBN,EAAaK,EAChCC,EAAiBH,EACnBH,EAAaM,EAMbb,GAAgBD,GAAgB,IAAIlsU,IAAIksU,GAAahlS,IAAIm2B,IAE7D,IACC,CACDgvQ,EACAV,EAAgB/vU,MAChBswU,EAAYp7U,KACZ8lD,EACAM,EAAMziE,OACNg4V,EACA/gO,IAGGx0D,EAAMziE,OAIU,IAAjByiE,EAAMziE,QACD/C,EAAAA,EAAAA,KAACu7V,GAAe,CAACp2R,KAAMK,EAAM,MAIpCxlE,EAAAA,EAAAA,KAAA,OAAKmf,UAAWK,GAAkB2D,IAAK62U,EAAa95V,UAClDka,EAAAA,EAAAA,MAAA,OAAK+I,IAAKu3U,EAAYv7U,UAAWK,GAAetf,SAAA,EAC9CF,EAAAA,EAAAA,KAACw7V,GAAc,CACb1B,cAAee,EACfn1R,OAAQA,IAAMA,EAAOq1R,GACrB51R,KAAMD,EAAa,GAEnBjmD,QAAQ,GAAM,GAAAnb,OADNohE,EAAa,GAAGpN,SAAQ,OAGjC0iS,EAAYp7U,KAAO,IAClBpf,EAAAA,EAAAA,KAACy7V,GAAuB,CACtB/1R,OAASrjC,GAAcqjC,EAAOq1R,EAAc14T,GAC5CmjC,MAAOjrD,MAAM2xF,KAAKsuP,KAGrBt1R,EAAa58C,KAAI,CAAC68C,EAAMv4C,KACvB,MAAM,IAAE6C,GAAQ01C,EAEhB,GAAU,IAANv4C,EACF,OAAO,KAGT,MAAM+sQ,EAASx0N,EAAK/kC,WAAa26T,EAAc,EAC/C,OACE/6V,EAAAA,EAAAA,KAACw7V,GAAc,CACbnqP,OAAQmpP,EAAYvsU,IAAIk3C,GACxB20R,cAAee,EACfn1R,OAAQA,IAAMA,EAAOq1R,EAAcnuU,GACnCu4C,KAAMA,EAENlmD,OAAQ06Q,GADHlqQ,EAEL,SAvCH,IA2CD,EC5LV,GDgMsCisU,KACpC,MAAMx2R,GAAeD,EAAAA,GAAAA,IAAgBW,GAAAA,IAC/B+1R,EAAcn2U,EAAAA,aAAmB6c,IACrCziB,GAAAA,EAAQ8mE,uBAAuBrkD,EAAE,GAChC,IAEH,OAAOriC,EAAAA,EAAAA,KAACu6V,GAAU,CAAC/0R,MAAON,EAAcQ,OAAQi2R,GAAe,EEvMjE,GCeyBC,KACvB,MAAM,WAAEn8U,IAAeC,EAAAA,EAAAA,MACjBsrC,EAAUniC,EAAkB,IAC5BgzU,GAAgBC,EAAAA,EAAAA,IAAWn4U,GAAUA,EAAMmhD,iBAC3C,QAAEvjD,GAAYs6U,GACd,UAAE7oR,IAAcG,EAAAA,EAAAA,MAChB4oR,EAAmC,gBAAZx6U,GACvB,SAAEu2C,IAAaC,EAAAA,EAAAA,MACfikS,EAAkBlkS,IAAa5I,EAAAA,GAAcjW,OAEnD,OACEj5C,EAAAA,EAAAA,KAAAqa,EAAAA,SAAA,CAAAna,UACEka,EAAAA,EAAAA,MAAA,UACE+E,UAAWI,KACT,aACAA,KAAW,CACT,uBAAwByrC,EAAU,EAClC,0BAA2B+wS,KAE7B77V,SAAA,EAEFka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,oBAAmBjf,SAAA,EAChCF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL9sC,UAAWK,GACXJ,KAAK,SACLmC,QAAQ,YACRsrC,KAAMovS,EACN34U,QAASA,MACPmjE,EAAAA,EAAAA,IAAkB,EAAK,EAEzB1kE,WAAW,gCAEXg6U,IAAyBC,IAAmBh8V,EAAAA,EAAAA,KAACu6V,GAAU,OAE1DsB,EAAc97V,SACbC,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,uBAAsBjf,SAClC27V,EAAc97V,OAAO,CAAE0f,kBAG5BrF,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,oBAAmBjf,SAAA,EAChCF,EAAAA,EAAAA,KAACk8V,EAAU,CAACrJ,SAAO,EAAA3yV,UACjBka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,SAAQjf,SAAA,EACrBF,EAAAA,EAAAA,KAACyrB,EAAAA,GAAI,CAACR,GAAIpL,EAAAA,GAAUC,QAASX,UAAU,OAAMjf,UAC3CF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CAAC7sC,KAAK,SAASmC,QAAQ,WAAUrhB,SAAC,cAI3CF,EAAAA,EAAAA,KAACyrB,EAAAA,GAAI,CAACR,GAAIpL,EAAAA,GAAUquC,SAAShuD,UAC3BF,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CAAC7sC,KAAK,SAASmC,QAAQ,UAASrhB,SAAC,oBAM9CF,EAAAA,EAAAA,KAACk8V,EAAU,CAAAh8V,SAAE8yE,IAAahzE,EAAAA,EAAAA,KAACk5V,GAAW,aAGzC,ECxEP,GCIqBiD,CAAWC,EAAcC,KAC5C,MAAM,WAAE58U,IAAeC,EAAAA,EAAAA,MAEvB,OAAOD,EAAa28U,EAAYC,CAAW,0LCC7C,MCRA,GDWIC,CAAClmS,EAAWC,EAAQC,KACtB,MAAM,UAAEjI,EAAS,KAAEzrD,EAAI,MAAEqhB,EAAK,QAAEuyC,IAAYC,EAAAA,EAAAA,GAI1C,CAAC5mD,EAAAA,IAA4CumD,IAC7CM,EAAAA,EAAAA,GAAgBxlD,EAAAA,IAAuCmlD,GACvDC,GAGF,MAAO,CAACE,EAAS5zD,EAAMqhB,EAAOoqC,EAAU,oCEjB1C,MCJA,GDAA,SAA6B1qC,GAC3Bg9C,GAAAA,EAAS6iB,KAAK1P,GAAAA,EAAWyoR,sBAAuB54U,EAClD,EEDA,IAAe3J,EAAAA,EAAAA,IACbha,EAAAA,EAAAA,KAAA,QAAMia,EAAE,+pDACR,gOCUF,MCbA,GDawC7Z,IACtC,MAAM,UAAE4f,EAAS,KAAEG,EAAI,KAAEpG,EAAI,QAAEuJ,EAAO,OAAErE,GAAW7e,EACnD,OACEga,EAAAA,EAAAA,MAAA,OACE+E,UAAWI,KAAW,oBAAqB,CACzC,4BAA6BN,IAE/BqE,QAASA,EAAQpjB,SAAA,EAGjBka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,6BAA4Bjf,SAAA,EACzCF,EAAAA,EAAAA,KAACkgB,GAAAA,GAAM,CACLf,UAAU,OACVa,UAAWA,EACXZ,KAAK,QACLe,KAAMA,KAER/F,EAAAA,EAAAA,MAAA,OAAAla,SAAA,EACEF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CAACoF,GAAG,IAAInF,SAAS,UAAUC,WAAW,MAAK3gB,SACnD6Z,KAEHK,EAAAA,EAAAA,MAACuG,GAAAA,GAAU,CAACY,QAAQ,YAAYX,SAAS,UAAUC,WAAW,MAAK3gB,SAAA,CAAC,IAChE8f,WAIPf,IAAUjf,EAAAA,EAAAA,KAACw8V,GAAAA,EAAa,CAAC90U,WAAW,qBAAqBtI,KAAM,OAC5D,EExCV,GCU0Chf,IACxC,MAAQysD,KAAM4vS,EAAUC,UAAWC,EAAa,MAAEz/B,EAAK,QAAE55S,GAAYljB,EACrE,OACEga,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,sBAAsBmE,QAASA,EAAQpjB,SAAA,EACpDka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,+BAA8Bjf,SAAA,EAC3CF,EAAAA,EAAAA,KAACy8V,EAAQ,CAACr9U,KAAM,GAAIsI,WAAW,kCAC/B1nB,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CAACE,WAAW,MAAMD,SAAS,UAAUW,QAAQ,UAASrhB,SAC9Dg9T,OAGJy/B,IACC38V,EAAAA,EAAAA,KAAC28V,EAAa,CAACv9U,KAAM,GAAIsI,WAAW,mCAElC,kECtBV,UAAe1N,EAAAA,EAAAA,IACbha,EAAAA,EAAAA,KAAA,QAAMia,EAAE,+IACR,mKCUF,MAyBA,GAzByC2iV,KAErC58V,EAAAA,EAAAA,KAAC25V,EAAAA,EAAM,CACLx6U,UAAU,6BACVuC,SAAS,QACTD,QAAQ,QACRH,aAAW,EACXD,SACEjH,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,mCAAkCjf,SAAA,EAC/CF,EAAAA,EAAAA,KAAC68V,GAAkB,CAAChwS,KAAMiwS,GAAAA,EAAS3iS,MAAO0d,GAAAA,GAAMU,SAChDv4E,EAAAA,EAAAA,KAAC68V,GAAkB,CAAChwS,KAAMkwS,GAAAA,EAAU5iS,MAAO0d,GAAAA,GAAMS,QACjDt4E,EAAAA,EAAAA,KAAC68V,GAAkB,CAAChwS,KAAMmwS,GAAW7iS,MAAO0d,GAAAA,GAAMolR,YAGtDz7U,UAAU,YAAWthB,UAErBF,EAAAA,EAAAA,KAACk9V,GAAe,CACdhgC,MAAM,QACNrwQ,KAAMmwS,GACNN,UAAWtC,GAAAA,MAcbyC,GAAgDz8V,IACpD,MAAQysD,KAAM4vS,EAAQ,MAAEtiS,EAAK,QAAE72C,GAAYljB,GACnCskE,iBAAkBy4R,EAAY,YAAE14R,IAAgB24R,EAAAA,GAAAA,KAClDn+U,EAASk+U,IAAiBhjS,EAEhC,OACE//C,EAAAA,EAAAA,MAAA,OACEkJ,QAASA,KACPmhD,EAAYtK,GACL,OAAP72C,QAAO,IAAPA,GAAAA,GAAW,EAEbnE,UAAU,yBAAwBjf,SAAA,EAElCka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,kCAAiCjf,SAAA,EAC9CF,EAAAA,EAAAA,KAACy8V,EAAQ,CAACr9U,KAAM,MAChBpf,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CAAAzgB,UAAE+jE,EAAAA,GAAAA,GAAsB9J,QAEpCl7C,IAAUjf,EAAAA,EAAAA,KAACw8V,GAAAA,EAAa,CAAC90U,WAAW,qBAAqBtI,KAAM,OAC5D,EChEV,+GCmDO,MAAMi+U,GAA+Cj9V,IAC1D,MAAM,cAAEk9V,EAAa,UAAEC,GAAcn9V,EAC/B6xC,GAAatvB,EAAAA,EAAAA,QAAuB,OACnCib,EAAQ4/T,IAAa/8U,EAAAA,EAAAA,UAAS,KAErCwC,EAAAA,GAAAA,GAAkBgvB,GAAY,KAC5BwrT,IAAwB,EAAM,IAGhC,MAAM,KAAE19R,EAAI,aAAEib,IAAiBt7D,EAAAA,EAAAA,MAEzBiwD,GAA8Bxa,EAAAA,GAAAA,IACjC1a,GAAUA,EAAMk1B,8BAEbva,GAAcD,EAAAA,GAAAA,IAAU1a,GAAUA,EAAM2a,eA6B9CsoS,EAAAA,GAAAA,GACE,UACA,KACED,IAAwB,EAAM,GAEhC,CAACA,KAEH,MAAMxhR,GAAoBC,EAAAA,GAAAA,IACvBv4D,GAAUA,EAAMs4D,oBAEbG,GAAuBF,EAAAA,GAAAA,IAC1Bv4D,GAAUA,EAAMy4D,uBAUbuhR,EAA0Bn4U,EAAAA,SAAc,KAC5C,MAAMo4U,EAA2B,CAC/B95U,KAAMliB,EAAAA,IAAck7E,KACpBogP,MAAO,UACP2gC,SAAU,UACV19U,KAAM4/C,EAAK5/C,KACXuG,GAAIq5C,EAAKr5C,GACT2mG,MAAOttD,EAAKstD,MACZrtG,UAAW+/C,EAAKgd,SAChBhjE,KAAMgmD,EAAKhmD,MAAQ,IAGf+jV,EAAgBR,EAAch1U,KAAKk1D,IAAG,CAC1C15D,KAAMliB,EAAAA,IAAcy0E,aACpB6mP,MAAO,eACP2gC,UAAUE,EAAAA,GAAAA,GAA0BvgR,EAAI/wD,MACxCtM,KAAMq9D,EAAIr9D,KACVuG,GAAI82D,EAAI92D,GACR1G,UAAWw9D,EAAIzjE,KACfszG,WAAOrqH,EACP+W,KAAMyjE,EAAIzjE,SAGZ,OAAOikV,EAAAA,EAAAA,KAAQJ,EAAeE,EAAc,GAC3C,CAAC/9R,EAAK5/C,KAAM4/C,EAAKr5C,GAAIq5C,EAAKstD,MAAOttD,EAAKgd,SAAUhd,EAAKhmD,KAAMujV,IAExDW,EAAqBz4U,EAAAA,SAAc,KACvC,MAAM04U,EAAmBtgU,EAAO2H,cAEhC,OAAOo4T,EAAW//T,QACfkyH,GACCA,EAAE/1I,KAAKwrB,cAAc9a,SAASyzU,IAC9BpuM,EAAE9vI,UAAUulB,cAAc9a,SAASyzU,IACtC,GACA,CAACtgU,EAAQ+/T,IAcZ,OAZAl2U,EAAAA,EAAAA,YAAU,KACH81U,EAKHjkR,GAAAA,EAAYkgB,kBAAkB,CAC5B3pF,EAAAA,MAJF2tV,EAAU,GAMZ,GACC,CAACD,KAGFnjV,EAAAA,EAAAA,MAAA,OACE+I,IAAK8uB,EACL9yB,UAAU,oBAAmBjf,SAAA,EAG7Bka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,4BAA2Bjf,SAAA,EACxCF,EAAAA,EAAAA,KAACkgB,GAAAA,GAAM,CACLE,SAAO,EACPJ,UAA4B,OAAjBi8D,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBj8D,UAC9BG,KAAuB,OAAjB87D,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB97D,KACzBf,KAAK,KACLD,UAAU,+BAEM,OAAjB88D,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBliE,QAClB/Z,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACToF,GAAG,IACH5G,UAAU,UACVyB,SAAS,UACTC,WAAW,MAAK3gB,SAEf+7E,EAAkBliE,QAGL,OAAjBkiE,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBj8D,aAClBhgB,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CAACY,QAAQ,YAAYX,SAAS,UAAUC,WAAW,MAAK3gB,SAChE+7E,EAAkBj8D,eAIxBs9U,EAAcv6V,OAAS,IACtB/C,EAAAA,EAAAA,KAACgmB,GAAAA,EAAS,CACRQ,KAAM23U,GAAAA,EACNr6U,KAAK,SACL1E,KAAK,QACLD,UAAU,4BACV8G,YAAY,mBACZG,SAAWmB,GAAMi2U,EAAUj2U,EAAE4vG,cAAcxvG,UAG/CvN,EAAAA,EAAAA,MAAA,OACE+E,UAAWI,KAAW,0BAA2B,CAC/C,oCAAqC0+U,EAAmBl7V,OAAS,IAChE7C,SAAA,EAEHF,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,gCAA+Bjf,SAC3C+9V,EAAmB31U,KAAK0qD,IAErBhzE,EAAAA,EAAAA,KAACo+V,GAAa,CAEZrkV,KAAMi5D,EAAUj5D,KAChBiG,UAAWgzD,EAAUhzD,UACrBG,KAAM6yD,EAAU7yD,KAChBlB,QAAyB,OAAjBg9D,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBv1D,MAAOssD,EAAUtsD,GAC5CpD,QAASA,KA7GOk7D,QA8GO,CACnB93D,GAAIssD,EAAUtsD,GACd3M,KAAMi5D,EAAUj5D,KAChBw5D,cAAeP,EAAUlvD,KACzB3D,KAAM6yD,EAAU7yD,KAChBH,UAAWgzD,EAAUhzD,UACrBqtG,MAAOr6C,EAAUq6C,OAlHjC/zC,GAAAA,EAAY+B,QACZe,EAAqBoC,GACrBi/Q,IAAwB,EAiHR,GAbCzqR,EAAUtsD,SAmBrBu3U,EAAmBl7V,SACnBqX,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,iCAAgCjf,SAAA,EAC7CF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACTC,SAAS,aACTC,WAAW,MACXqK,MAAM,oBACNC,MAAM,SACNpF,GAAG,KACH5G,UAAU,OAAMjf,SACjB,yBAGDF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACTwK,MAAM,SACNvK,SAAS,UACTsK,MAAM,oBACNnF,GAAG,IAAG7lB,SAAA,0CAAA4D,OACmC85B,EAAM,QACjD59B,EAAAA,EAAAA,KAAA,OACEmf,UAAU,0BACV4B,IAAKs9U,GACLv9U,IAAI,4BAKZ1G,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,0BAAyBjf,SAAA,EACtCF,EAAAA,EAAAA,KAACk9V,GAAe,CACdhgC,MAAM,WACNrwQ,KAAMyxS,GAAAA,EACNh7U,QAASA,KACP1D,GAAAA,EAAQmF,KAAKw5U,EAAAA,GAActlT,QAC3BwkT,IAAwB,EAAM,KAGlCz9V,EAAAA,EAAAA,KAAC48V,GAAsB,QAEzBxiV,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,4BAA2Bjf,SAAA,EACtC86E,IAAgB3J,EAAAA,GAAAA,QAChBrxE,EAAAA,EAAAA,KAACk9V,GAAe,CACdhgC,MAAM,sBACNrwQ,KAAM2xS,GAAAA,EACNl7U,QA7MuBm7U,KAC/B9uR,EAA4B,CAC1B4jB,UAAY/V,IACVpB,EAAqB,CACnB11D,GAAI82D,EAAI92D,GACR1G,UAAWw9D,EAAIzjE,KACfw5D,cAAe3xE,EAAAA,IAAcy0E,aAG7B1yD,MAAO,CACL+6U,mBAAmB,KAGvBtpS,GAAa,IAGjBqoS,IAAwB,EAAM,KAgM1Bz9V,EAAAA,EAAAA,KAACk9V,GAAe,CACdhgC,MAAM,SACNrwQ,KAAM8xS,GACNr7U,QA/LkBs7U,KACxBh/U,GAAAA,EAAQmF,KAAKlF,EAAAA,GAAU8jD,UACvB85R,IAAwB,EAAM,SAgMxB,EC1RV,GD8R+CoB,KAC7C,MAAO,CAAExiR,GAAeigR,KAClBiB,GAAqB3K,EAAAA,GAAAA,GAAS9+Q,GAAAA,EAAWyoR,uBAEzCe,GAAgB39U,EAAAA,EAAAA,UAAQ,KACV,OAAX08D,QAAW,IAAXA,OAAW,EAAXA,EAAaz5E,OAAQ,IAC3B,CAACy5E,IAEJ,OAAKkhR,GAKHnjV,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEF,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,4BACfnf,EAAAA,EAAAA,KAACq9V,GAAa,CAACE,UAAWA,EAAWD,cAAeA,OAN/C,IAOJ,kEE7RP,MCjBA,GDAA,WACE,MAAO/lQ,EAAUunQ,IAAcr+U,EAAAA,EAAAA,UAAS0E,OAAO2Q,UAAUmyP,QACnD82E,EAAgBA,KACpBD,EAAW35U,OAAO2Q,UAAUmyP,OAAO,EAWrC,OATAxgQ,EAAAA,EAAAA,YAAU,KACRtC,OAAOwc,iBAAiB,UAAWo9T,GACnC55U,OAAOwc,iBAAiB,SAAUo9T,GAE3B,KACL55U,OAAOgd,oBAAoB,UAAW48T,GACtC55U,OAAOgd,oBAAoB,SAAU48T,EAAc,KAGhDxnQ,CACT,kEEjBA,MCEA,GDFiBynQ,KACf,IACE,OAAO75U,OAAOumB,OAASvmB,OAAOuV,GAChC,CAAE,MAAOnT,GACP,OAAO,CACT,GEHF,GCA8B03U,KAC5B,MAAOC,EAAkBC,IAAa1+U,EAAAA,EAAAA,UAAS+H,SAAS6oF,QAElD+tP,EAAqBA,IAAMD,EAAU32U,SAAS6oF,QASpD,OARA5pF,EAAAA,EAAAA,YAAU,KACRe,SAASmZ,iBAAiB,mBAAoBy9T,GAEvC,KACL52U,SAAS2Z,oBAAoB,mBAAoBi9T,EAAmB,MAIhEF,CAAgB,ECZ1B,GCYoCG,KAClC,MAAM,oCAAEnnS,IAAwCL,EAAAA,GAAAA,KAC1CynS,GAAgB/gS,EAAAA,GAAAA,KAAY56C,GAAUA,EAAM4sB,SAC5CgvT,EAAkBN,KAClB/pS,GAASC,EAAAA,GAAAA,IAAUxxC,GAAUA,EAAMuxC,SACnCsqS,EAA6BR,KAI7BS,EAA4Bj6U,EAAAA,SAAc,IACvC0vC,EAAOrhC,MACX0lB,GACCA,EAAEx/B,OAAS8wD,GAAAA,EAAOvX,mBAClB/Z,EAAEx/B,OAAS8wD,GAAAA,EAAOhX,mCAClBta,EAAEx/B,OAAS8wD,GAAAA,EAAO3a,qBAErB,CAACgF,IAEJ,QACEsqS,GACCtnS,GACConS,IAAkB7gS,GAAAA,GAAcihS,SAClCD,IACCF,EAKQ,oCCdb,MC1BA,GD0BuB18V,IACrB,MAAM,QAAEi9B,EAAO,OAAE04B,EAAM,eAAEG,GAAmB91D,EACtCylE,GAAuB/J,EAAAA,GAAAA,KAC1B56C,GAAUA,EAAM2kD,uBAEbW,GAAuB1K,EAAAA,GAAAA,KAC1B56C,GAAUA,EAAMslD,wBAEb,sCAAExQ,IACNknS,EAAAA,GAAAA,GAA2BnnS,GACvBjoB,GAASguB,EAAAA,GAAAA,KAAY56C,GAAUA,EAAM4sB,SACrCqvT,GAAmBrhS,EAAAA,GAAAA,IAAW+L,GAAAA,KACpC7iD,EAAAA,EAAAA,YAAU,MAELm4U,GACDrvT,IAAWkuB,GAAAA,GAAc4K,MACzBvpC,GACc,OAAd64B,QAAc,IAAdA,GAAAA,EAAgBv5C,MAChBu5C,EAAeQ,OAEfV,EAAsCE,GAAgB,KACpDsQ,EAAqB,GACrBX,EAAqB3P,EAAeQ,MAAM,GAE9C,GACC,CACDr5B,EACA64B,EACAF,EACA6P,EACAW,EACA14B,EACAqvT,GACA,kEErDJ,MCNA,GDMyCC,KACvC,MAAMtvT,GAASguB,EAAAA,GAAAA,KAAY56C,GAAUA,EAAM4sB,SACrCu2B,GAAcvI,EAAAA,GAAAA,KAAY56C,GAAUA,EAAMmjD,cAC1CgB,GAAmBvJ,EAAAA,GAAAA,KAAY56C,GAAUA,EAAMmkD,mBAC/CgE,GAAwC3W,EAAAA,GAAAA,IAC3CxxC,GAAUA,EAAMmoD,wCAGbg0R,GAAmBpnS,EAAAA,EAAAA,cACtBmP,IACC,GAAIA,EAAKztB,SAAWksB,GAAAA,GAASoL,eAAgB,CAC3C,MAAM,QAAEzY,EAAO,SAAEz0C,GAAaqjD,EAE9BiE,EAAsC,CACpC3S,MAAc,OAAPF,QAAO,IAAPA,OAAO,EAAPA,EAASE,MAChB8O,OAAe,OAAPhP,QAAO,IAAPA,OAAO,EAAPA,EAASgP,OACjB7oD,KAAa,OAAP65C,QAAO,IAAPA,OAAO,EAAPA,EAAS75C,OAET,OAARoF,QAAQ,IAARA,GAAAA,GACF,IAEF,CAACsnD,KAGHrkD,EAAAA,EAAAA,YAAU,KACJ8oB,IAAWkuB,GAAAA,GAAc4K,OAC3BvC,EAAYlnC,QAAQkgU,GAEpBh4R,IACF,GACC,CAACA,EAAkBg4R,EAAkBh5R,EAAav2B,GAAQ,EEpC/D,GCY8CnwC,IAC5C,MAAM,OACJmwC,EAAM,UACN44B,EAAS,qBACTF,EAAoB,OACpB7Q,EAAM,MACNe,EAAK,QACLiQ,EAAO,WACPrC,IACExI,EAAAA,GAAAA,KAAY56C,IAAK,CACnB4sB,OAAQ5sB,EAAM4sB,OACd6nB,OAAQz0C,EAAMy0C,OACde,MAAOx1C,EAAMw1C,MACbgQ,UAAWxlD,EAAMwlD,UACjBC,QAASzlD,EAAMylD,QACfH,qBAAsBtlD,EAAMslD,qBAC5BlC,WAAYpjD,EAAMojD,eAGdg5R,EAAUC,KACVxnS,EAAShzC,EAAAA,OAAuC,MAChDy6U,EAAoBz6U,EAAAA,OAAa,IAChC06U,EAAWC,GAAgB36U,EAAAA,SAAe,GAC3C46U,EAA+B56U,EAAAA,OAAa,GAE5C66U,EAAgC76U,EAAAA,QACpC8B,EAAAA,GAAAA,IAAS,IAAM64U,GAAcj+N,GAAMA,EAAI,KAAI,KAAO,IAE9ClhH,EAAUwE,EAAAA,aAAkB,KAKhC66U,EAA8B74U,UAE9B44U,EAA6B54U,UACzB44U,EAA6B54U,QAAU,IACzC2hD,EAAU1K,GAAAA,GAAcI,mBAC1B,GACC,CAACsK,EAAWi3R,EAA8BC,IAE7C76U,EAAAA,WAAgB,KACVu6U,GAIFM,EAA8B74U,SAChC,GACC,CAACu4U,EAASM,KAEb7hS,EAAAA,GAAAA,GAA4B,CAC1BhD,sBAAuBA,KACrB2N,EAAU1K,GAAAA,GAAcihS,SACxBO,EAAkBz4U,QAAU,CAAC,EAE/Bk0C,wBAAyBA,KACvBukS,EAAkBz4U,QAAU,EAC5B4hD,GAAS,EAEX3N,oBAAqBA,KACnB4kS,EAA8B74U,SAAS,EAEzCm0C,kBAAoBuB,IAKdA,GACF+L,EAAqB/L,EACvB,EAEFtB,eAAgBA,KACdykS,EAA8B74U,UAE9By4U,EAAkBz4U,UACdy4U,EAAkBz4U,QAAU,IAC9B2hD,EAAU1K,GAAAA,GAAcK,iBAC1B,KAOJwhS,EAAAA,GAAAA,GAA2C,CACzChiS,eAAgB+hS,EAA8B74U,QAC9ChD,SAAUA,KACRy7U,EAAkBz4U,QAAU,EAC5B4hD,GAAS,IAIbm3R,GAAc,CACZzgU,QAASqM,QAAQoE,IAAWkuB,GAAAA,GAAc4K,MAC1C7Q,OAAQA,EACRG,eAAgB,CACdQ,MAAOA,EACP/5C,KAAMg5C,KAQVynS,KAQA,OAF2BR,MAOzBr/V,EAAAA,EAAAA,KAAA,UACEmf,UAAU,0BACVgE,IAAKq1C,EACL5zC,MAAM,iBAEN47U,eAAgBx/U,EAChBD,IAAKgmD,GAFAm5R,GARA,IAWL,gGCzIN,MCAA,GDA2BO,CAAC32O,EAAoB1hD,KACtB,IAADs4R,EAAvB,SAAIn2R,EAAAA,GAAAA,GAAanC,KACL,OAAHA,QAAG,IAAHA,GAAa,QAAVs4R,EAAHt4R,EAAKrZ,gBAAQ,IAAA2xS,OAAV,EAAHA,EAAenwT,UAAWu5E,CAEvB,EEJd,GCaiC62O,KAC/B,MAAMC,GAAyBj+U,EAAAA,EAAAA,SAAQumB,oBAAAA,EAAO23T,UACxC,KAAE9gS,IAASrgD,EAAAA,EAAAA,OACX,OACJ6wB,EAAM,oBACN23B,EAAmB,uBACnBC,EAAsB,yBACtBE,EAAwB,wBACxBiB,EAAuB,kBACvBG,EAAiB,UACjBN,IACE5K,EAAAA,GAAAA,KAAY56C,IAAK,CACnB4sB,OAAQ5sB,EAAM4sB,OACd44B,UAAWxlD,EAAMwlD,UACjBG,wBAAyB3lD,EAAM2lD,wBAC/BpB,oBAAqBvkD,EAAMukD,oBAC3BC,uBAAwBxkD,EAAMwkD,uBAC9BE,yBAA0B1kD,EAAM0kD,yBAChCoB,kBAAmB9lD,EAAM8lD,uBAGpB,CAAE1a,EAAU9qC,EAAOyE,IAAW0uC,EAAAA,GAAAA,GACnC,CACEp3C,UAAW+/C,EAAKgd,UAElB,CACErZ,YAAY,GAEd,CACEgnN,gBAAiB,IAKjB12L,MAAO,EACP62L,6BAA6B,EAC7B/qP,QAAS8gU,EAAuBp5U,UAQpChC,EAAAA,WAAgB,KACVi7U,GAAmB,IAAKx8U,KAC1B28U,EAAuBp5U,SAAU,EACnC,GACC,CAACvD,IAEJ,MAAM68U,GAAiBviS,EAAAA,GAAAA,IAAW8L,GAAAA,IAKlC7kD,EAAAA,WAAgB,KAEZ+qB,IAAWkuB,GAAAA,GAAcC,eACX,OAAdoiS,QAAc,IAAdA,OAAc,EAAdA,EAAgB12R,cAAeloE,EAAAA,IAAU6+V,aAEzCz3R,EAAwBw3R,EAAe74R,OACzC,GACC,CACa,OAAd64R,QAAc,IAAdA,OAAc,EAAdA,EAAgB12R,WACF,OAAd02R,QAAc,IAAdA,OAAc,EAAdA,EAAgB74R,OAChBqB,EACA/4B,IAGF/qB,EAAAA,WAAgB,KACF,OAARupC,QAAQ,IAARA,GAAAA,EAAUnsD,KAAKG,SAAWkhB,GAC5BikD,EAA4B,OAARnZ,QAAQ,IAARA,OAAQ,EAARA,EAAUnsD,MAOH,IAAzBmsD,EAASnsD,KAAKG,QACdgsD,EAASnsD,KAAK,GAAGqlE,QACjBlZ,EAASnsD,KAAK,GAAGwnE,aAAeloE,EAAAA,IAAU6+V,aAC1CxwT,IAAWkuB,GAAAA,GAAcyK,WAEzBO,EAAkB1a,EAASnsD,KAAK,GAAGqlE,SAGrCC,EAAoB,GACtB,GACC,CACDnZ,EACAmZ,EACAuB,EACAN,EACA54B,EACAtsB,IAGFuB,EAAAA,WAAgB,KACd6iD,EAAyB3/C,EAAQ,GAChC,CAACA,EAAS2/C,IAEb7iD,EAAAA,WAAgB,KACd2iD,EAAuBlkD,EAA4C,GAClE,CAACA,EAAOkkD,GAAwB,ECpHrC,GCO2C/nE,IACzC,MAAM8hE,GAAeC,EAAAA,GAAAA,IAAax+C,GAAUA,EAAMu+C,gBAC5C,OAAE3xB,EAAM,SAAE0sB,EAAQ,OAAE7E,EAAM,MAAEe,IAAUoF,EAAAA,GAAAA,KAAY56C,IAAK,CAC3D4sB,OAAQ5sB,EAAM4sB,OACd0sB,SAAUt5C,EAAMs5C,SAChB7E,OAAQz0C,EAAMy0C,OACde,MAAOx1C,EAAMw1C,UAKT6nS,EAAiC5oS,GAAUe,EAiBjD,OAhBAwnS,KAEAn7U,EAAAA,WAAgB,KACTw7U,GAIDzwT,IAAWkuB,GAAAA,GAAcihS,SAC3Bx9R,EAAa,CACXt9C,MAAO,uBACPrD,QAAS,UACTsD,YAAa,2DAEjB,GACC,CAAC0rB,EAAQ0sB,EAAU+jS,EAAgC9+R,KAGpDliE,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,uBAAsBjf,UACnCF,EAAAA,EAAAA,KAACihW,GAAmB,KAChB,ECtCV,GCF0BC,IACW,SAA5Bh4T,oBAAAA,EAAOi4T,kSCAhB,UAAgB,UAAY,6BAA6B,OAAS,0BAA0B,MAAQ,yBAAyB,KAAO,wBAAwB,QAAU,4BCCtK,GCQoC/gW,IAClC,MAAM,QAAEmhB,EAAO,UAAEpC,EAAS,OAAEF,GAAW7e,EACvC,OACEJ,EAAAA,EAAAA,KAAA,OACEmf,UAAWI,KAAWJ,EAAWK,GAAOoK,UAAW,CACjD,CAACpK,GAAOP,QAASA,IAChB/e,UAEHF,EAAAA,EAAAA,KAAA,OAAKmf,UAAWI,KAAWC,GAAOm1F,MAAOn1F,GAAO+B,OAC5C,ECjBV,GCiBmDnhB,IACjD,MAAM,GACJ6qB,EACA4hC,KAAMrmC,EAAI,KACVqnC,EAAI,OACJ5uC,EAAM,QACNqE,EAAO,WACPhD,EAAU,iBACV8gV,EAAgB,cAChB10S,EAAa,0BACbC,GACEvsD,EAEJ,OACEga,EAAAA,EAAAA,MAACuG,GAAAA,GAAU,CACT+rC,cAAeA,EACfC,0BAA2BA,EAC3BrpC,QAASA,EACT2H,GAAIA,EACJ9L,UAAWI,KAAW,qBAAsB,CAC1C,6BAA8BN,IAEhCqB,WAAYA,EAAWpgB,SAAA,EAEvBF,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,2BAA0Bjf,UACvCF,EAAAA,EAAAA,KAACwmB,EAAI,CAACrH,UAAU,2BAA2BC,KAAK,YAElDpf,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACTxB,UAAU,2BACVgM,MAAM,SACNtK,WAAW,MACXU,QAAQ,cACRX,SAAS,WAAU1gB,SAElB2tD,IAEFuzS,IACCphW,EAAAA,EAAAA,KAACqhW,GAAS,CACRliV,UAAU,gCACVoC,QAAS6/U,EACTniV,OAAQA,MAGD,EC3DjB,IAAejF,EAAAA,EAAAA,IACbha,EAAAA,EAAAA,KAAAqa,EAAAA,SAAA,CAAAna,UACEF,EAAAA,EAAAA,KAAA,QAAMia,EAAE,4KAEV,gKCAF,MCLA,GDKoCqnV,KAClC,MAAM,UAAEtuR,IAAcG,EAAAA,EAAAA,OACf,CAAEkJ,GAAeigR,KAExB,IAAKtpR,EACH,OAAO,KAGT,MAAMsqR,GAA2B,OAAXjhR,QAAW,IAAXA,OAAW,EAAXA,EAAaz5E,OAAQ,GAE3C,OACEwX,EAAAA,EAAAA,MAAA,UACE+E,UAAU,wBACVmE,QAASA,IAAMm6U,IAAwB,GAEvC,kBAAgB,IAAGv9V,SAAA,EAEnBF,EAAAA,EAAAA,KAACkgB,GAAAA,GAAM,CACLF,UAAWgzD,EAAUhzD,UACrBb,UAAU,gCACVgB,KAAM6yD,EAAU7yD,KAChBf,KAAK,UAENk+U,EAAcv6V,OAAS,IACtB/C,EAAAA,EAAAA,KAAA,OACEmf,UAAU,oCAIbm+U,EAAcv6V,OAAS,IACtB/C,EAAAA,EAAAA,KAAA,OACEmf,UAAU,yEAIP,4JEzCb,SAA4B,8BAA5B,GAAiE,yBAAjE,GAAsG,gECEtG,UAAenF,EAAAA,EAAAA,IACbI,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEF,EAAAA,EAAAA,KAAA,QAAMia,EAAE,6nBACRja,EAAAA,EAAAA,KAAA,QAAMia,EAAE,soCAEV,0CCLF,UAAeD,EAAAA,EAAAA,IACbha,EAAAA,EAAAA,KAAA,QACEka,SAAS,UACTC,SAAS,UACTF,EAAE,ovBAEJ,iBCUIsnV,GAAiDnhW,IACrD,MAAM,KAAE2vD,EAAI,MAAEmtQ,EAAOrwQ,KAAMrmC,GAASpmB,EACpC,OACEga,EAAAA,EAAAA,MAAA,KAAG+E,UAAWK,GAAawI,OAAO,SAASoD,KAAM2kC,EAAMojG,IAAI,aAAYjzJ,SAAA,EACrEka,EAAAA,EAAAA,MAAA,OAAK+E,UAAWK,GAAiBtf,SAAA,EAC/BF,EAAAA,EAAAA,KAACwmB,EAAI,CAACpH,KAAK,OAAOsI,WAAW,kCAC7B1nB,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CAACC,SAAS,UAAUC,WAAW,MAAMU,QAAQ,YAAWrhB,SAChEg9T,QAGLl9T,EAAAA,EAAAA,KAACwhW,GAAAA,EAAwB,CACvB95U,WAAW,8BACXtI,KAAK,WAEL,EC/BR,GDmC6BqiV,KAEzBrnV,EAAAA,EAAAA,MAAA,OAAK+E,UAAWK,GAAiBtf,SAAA,EAC/BF,EAAAA,EAAAA,KAACuhW,GAAc,CACbrkC,MAAM,gBACNrwQ,KAAM60S,GAAAA,EACN3xS,KAAM4xS,EAAAA,GAAcjjQ,gBAAgBC,QAEtC3+F,EAAAA,EAAAA,KAACuhW,GAAc,CACbrkC,MAAM,UACNrwQ,KAAM+0S,GAAAA,EACN7xS,KAAM4xS,EAAAA,GAAczjQ,iBAEtBl+F,EAAAA,EAAAA,KAACuhW,GAAc,CACbrkC,MAAM,UACNrwQ,KAAMg1S,GACN9xS,KAAM4xS,EAAAA,GAAcrjQ,iBAEtBt+F,EAAAA,EAAAA,KAACuhW,GAAc,CACbrkC,MAAM,kBACNrwQ,KAAMi1S,GAAAA,EACN/xS,KAAM4xS,EAAAA,GAAcpjQ,kBAEtBv+F,EAAAA,EAAAA,KAACuhW,GAAc,CACbrkC,MAAM,iBACNrwQ,KAAMk1S,GACNhyS,KAAM4xS,EAAAA,GAAcvjQ,uBAEtBp+F,EAAAA,EAAAA,KAACuhW,GAAc,CACbrkC,MAAM,eACNrwQ,KAAMm1S,GAAAA,EACNjyS,KAAM4xS,EAAAA,GAActjQ,+GEzC5B,MCzBA,GDyB2B4jQ,KACzB,MAAM,SAAEnqS,IAAaC,EAAAA,EAAAA,MACfp0C,GAAiBivU,EAAAA,GAAAA,GAAS9+Q,GAAAA,EAAWunB,qBACrC9qD,GAASguB,EAAAA,GAAAA,KAAY56C,GAAUA,EAAM4sB,SAErC2xT,GAA0BviV,EAAAA,EAAAA,UAAQ,IAClC4wB,IAAWkuB,GAAAA,GAAcihS,QACpB,OACEnvT,IAAWkuB,GAAAA,GAAcC,aAC3B,eADF,GAGN,CAACnuB,IAEJ,OACEn2B,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEka,EAAAA,EAAAA,MAAA,OACE+E,UAAWI,KAAW,eAAgB,CACpC,+BAAgCoE,IAC/BzjB,SAAA,EAEHka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,wBAAuBjf,SAAA,EACpCF,EAAAA,EAAAA,KAACk8V,EAAU,CAAAh8V,UACTF,EAAAA,EAAAA,KAACshW,GAAiB,OAEpBthW,EAAAA,EAAAA,KAACmiW,GAAc,CACbljV,OAAQ64C,IAAa5I,EAAAA,GAAcjW,OACnC4U,KAAK,OACL5iC,GAAIikC,EAAAA,GAAcjW,OAClB4T,KAAMu1S,GACN9hV,WAAW,iBACXosC,cAAc,OAEhB1sD,EAAAA,EAAAA,KAACmiW,GAAc,CACbljV,OAAQ64C,EAAShpB,WAAWuzT,GAAAA,EAAYppT,QACxC4U,KAAK,SACL5iC,GAAIo3U,GAAAA,EAAYppT,OAChB4T,KAAMy1S,GAAAA,EACNhiV,WAAW,mBACXosC,cAAc,IACdC,0BAA0B,OAE5B3sD,EAAAA,EAAAA,KAACmiW,GAAc,CACbt0S,KAAK,OACL5iC,GAAIktC,GAAAA,EAAUlf,OACdh6B,OAAQ64C,EAAShpB,WAAWqpB,GAAAA,EAAUlf,QACtC4T,KAAM01S,GAAAA,EACN71S,cAAc,IACdpsC,WAAW,oBAEbtgB,EAAAA,EAAAA,KAACmiW,GAAc,CACbljV,OAAQ64C,EAAShpB,WAAW0zT,GAAAA,EAAavpT,QACzC4U,KAAK,UACL5iC,GAAIu3U,GAAAA,EAAavpT,OACjBmoT,iBAAkBc,EAClBr1S,KAAM41S,GAAAA,EACNniV,WAAW,oBACXosC,cAAc,OAEhB1sD,EAAAA,EAAAA,KAACmiW,GAAc,CACbl3U,GAAIy3U,GAAAA,EAAazpT,OACjBh6B,OAAQ64C,EAAShpB,WAAW4zT,GAAAA,EAAazpT,QACzC4U,KAAK,UACLhB,KAAMm1S,GAAAA,EACNt1S,cAAc,IACdpsC,WAAW,uBAEbtgB,EAAAA,EAAAA,KAACmiW,GAAc,CACbl3U,GAAI03U,GAAAA,EAAiB1pT,OACrBh6B,OAAQ64C,EAAShpB,WAAW6zT,GAAAA,EAAiB1pT,QAC7C4U,KAAK,cACLhB,KAAM+1S,GAAAA,EACNtiV,WAAW,wBACXosC,cAAc,UAGlBtyC,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,wBAAuBjf,SAAA,EACpCF,EAAAA,EAAAA,KAACmiW,GAAc,CACbljV,OAAQ64C,EAAShpB,WAAWyvT,EAAAA,GAActlT,QAC1C4U,KAAK,WACL5iC,GAAIszU,EAAAA,GAActlT,OAClB4T,KAAMyxS,GAAAA,EACNh+U,WAAW,qBACXqsC,0BAA0B,OAE5B3sD,EAAAA,EAAAA,KAAC25V,EAAAA,EAAM,CACLl4U,QAAQ,QACRJ,SAASrhB,EAAAA,EAAAA,KAACyhW,GAAU,IACpBngV,aAAW,EACXU,iBAAe,EAAA9hB,UAEfF,EAAAA,EAAAA,KAACmiW,GAAc,CACbljV,QAAQ,EACR4uC,KAAK,OACLhB,KAAMg2S,GAAAA,EACNviV,WAAW,4BAWnBtgB,EAAAA,EAAAA,KAAA,OACEsjB,QAASA,IAAMq9C,GAAAA,EAAS6iB,KAAK1P,GAAAA,EAAWunB,qBAAqB,GAC7Dl8E,UAAWI,KAAW,iCAAkC,CACtD,yCAA0CoE,QAG7C,kEEhIP,MCRA,GDQkDvjB,IAChD,MAAM,SAAEF,GAAaE,GACf,SAAE03D,IAAaC,EAAAA,EAAAA,MAErB,OACE/3D,EAAAA,EAAAA,KAAA,OACEmf,UAAWI,KAAW,kBAAmB,CACvC,4BAA6Bu4C,IAAa5I,EAAAA,GAAcjW,SACvD/4C,SAEFA,GACG,iEEfV,MCJA,GDI6B4iW,KAC3B,MAAM,gCAAEtvR,IAAoCoC,EAAAA,GAAAA,MACtCtK,GAA0BnW,EAAAA,GAAAA,IAC7BxxC,GAAUA,EAAM2nD,2BAEb,SAAExT,IAAaC,EAAAA,EAAAA,MAKfgrS,GAAsBpjV,EAAAA,EAAAA,UAAQ,KAC1Bm4C,EAAShpB,WAAW07C,GAAAA,EAAmBvxC,OAC9C,CAAC6e,IAEE1C,GAAcD,EAAAA,GAAAA,IAAUxxC,GAAUA,EAAMyxC,cAiB9C,OAhBA3tC,EAAAA,EAAAA,YAAU,KACJs7U,GACFz3R,EAAwB,CACtBioB,UAAWA,KACTn+B,IACAoe,GAAiC,GAGvC,GACC,CACDpe,EACAoe,EACAuvR,EACAz3R,IAGK,IAAI,iEE7Bb,MAAMvwB,GAAQ,CACZ,CACE/yB,OAAQ,wBACRpD,MAAO,yBACPvD,QACE,iLACFG,UAAW,SAEb,CACEwG,OAAQ,wBACRpD,MAAO,cACPvD,QACE,qGACFG,UAAW,SAEb,CACEwG,OAAQ,wBACRpD,MAAO,uBACPvD,QACE,wFACFG,UAAW,SAEb,CACEwG,OAAQ,wBACRpD,MAAO,mBACPvD,QACE,2FACFG,UAAW,SAEb,CACEwG,OAAQ,wBACRpD,MAAO,wBACPvD,QACE,oJACFG,UAAW,SAEb,CACEwG,OAAQ,wBACRpD,MAAO,mBACPvD,QACE,gGACFG,UAAW,SAEb,CACEwG,OAAQ,wBACRpD,MAAO,6BACPvD,QACE,wJACFG,UAAW,UCtDf,GD0DkBgwD,KAChB,MAAM,UAAEwB,IAAcG,EAAAA,EAAAA,OAChB,gCAAEK,IAAoCoC,EAAAA,GAAAA,OACrCxC,IAAsB/b,EAAAA,GAAAA,MACtBp4C,EAAQmgS,IAAa3+R,EAAAA,EAAAA,WAAS,GAC/BuiV,EAAyB,CAC7BhjV,UAAoB,OAATgzD,QAAS,IAATA,OAAS,EAATA,EAAWhzD,UACtBwlD,MAAO,CACL33C,QAAS,CAAC9rB,EAAAA,IAAeyvE,aAe7B,OACExxE,EAAAA,EAAAA,KAACijW,GAAAA,EAAI,CACHloT,MAAOA,GACP97B,OAAQA,EACRitC,SAfavpD,gBACTywE,EAAmB,CAAC4vR,IAC1BxvR,GAAiC,EAc/B5nB,UAXcjpD,UAChBy8S,GAAU,SACJhsO,EAAmB,CAAC4vR,IAC1BxvR,GAAiC,EAS/BrnB,eAAgB,IAChBR,aAAW,GACX,EEzFN,GCIiCu3S,KAC/B,MAAM,gBAAEhwR,IAAoBC,EAAAA,EAAAA,OACtB,yBACJQ,EAAwB,gBACxBS,EAAe,uBACfE,EAAsB,oBACtBD,EAAmB,wBACnBM,EAAuB,gBACvBd,IACE+B,EAAAA,GAAAA,MAEJ,OAAK1C,GAOAS,GAA6BE,EAO9Bc,EAIK,KAGJP,GAAoBE,EAIpBD,EAIE,MAHEr0E,EAAAA,EAAAA,KAACwxE,GAAS,KAJVxxE,EAAAA,EAAAA,KAAC8iW,GAAU,IAlBX,IAyBE,ECnCP/nT,GAAQ,CACZ,CACE/yB,OAAQ,qCACRpD,MAAO,kBACPvD,QACE,8KACFG,UAAW,SAEb,CACEwG,OAAQ,qCACRpD,MAAO,4BACPvD,QACE,gFACFG,UAAW,UCtBf,GD0BkBgwD,KAChB,MAAM,KAAEzR,IAASrgD,EAAAA,EAAAA,OACX,gCAAE8zD,IAAoCoC,EAAAA,GAAAA,MACtCqG,GAAoBC,EAAAA,GAAAA,IACvBv4D,GAAUA,EAAMs4D,qBAEZ7I,IAAsB/b,EAAAA,GAAAA,MACtB8rS,EAAaC,IAAkB3iV,EAAAA,EAAAA,WAAS,IACxCxB,EAAQmgS,IAAa3+R,EAAAA,EAAAA,WAAS,GAC/BmvD,GAAiCza,EAAAA,GAAAA,IACpCxxC,GAAUA,EAAMisD,iCAEbxa,GAAcD,EAAAA,GAAAA,IAAUxxC,GAAUA,EAAMyxC,cACxC4tS,EAAyB,CAC7BhjV,UAAW+/C,EAAKr5C,GAChB8+C,MAAO,CACL33C,QAAS,CAAC9rB,EAAAA,IAAe+vE,yBA4B7B,OAbA5oD,EAAAA,GAAAA,IAAS,KAAO,IAADm6U,EACQ,OAAjBpnR,QAAiB,IAAjBA,GAAwB,QAAPonR,EAAjBpnR,EAAmBt4D,aAAK,IAAA0/U,GAAxBA,EAA0B3E,kBAC5B9uR,EAA+B,CAC7B2jB,UAAWA,KACT6vQ,GAAe,GACfhuS,GAAa,IAIjBguS,GAAe,EACjB,IAGGD,GAKHnjW,EAAAA,EAAAA,KAACijW,GAAAA,EAAI,CACHloT,MAAOA,GACP97B,OAAQA,EACRitC,SAhCavpD,gBACTywE,EAAmB,CAAC4vR,IAC1BxvR,GAAiC,EA+B/B5nB,UA5BcjpD,UAChBy8S,GAAU,SACJhsO,EAAmB,CAAC4vR,IAC1BxvR,GAAiC,EA0B/BrnB,eAAgB,IAChBR,aAAW,IAVN,IAWL,EElFN,GCGyC23S,KACvC,MAAM,wBAAErwR,IAA4BE,EAAAA,EAAAA,OAC9B,yBACJQ,EAAwB,gCACxBiB,EAA+B,gCAE/BG,IACEa,EAAAA,GAAAA,MAEJ,OAAK3C,GAIAU,EAODoB,GAOCH,EAHI,MAOA50E,EAAAA,EAAAA,KAACwxE,GAAS,IArBV,IAwBE,ECrCb,GCM0C+xR,KAIxC,MAAM,YAAEjsS,EAAW,UAAEjJ,EAAS,MAAEpqC,EAAK,KAAErhB,IAAS20D,EAAAA,GAAAA,GAC9ClgD,EAAAA,KAGF,MAAO,EACLmgD,EAAAA,EAAAA,IAAiBF,GACjB10D,EACAqhB,EACAoqC,EACD,ECnBH,GCM6Bm1S,KAC3B,MAAM,KAAEzjS,IAASrgD,EAAAA,EAAAA,OACX,gBAAEwzD,EAAe,wBAAED,IAA4BE,EAAAA,EAAAA,OAC9CswR,GAAyBC,MAC1B,kBAAEhuR,IAAsBE,EAAAA,GAAAA,MAG9B,OAAIF,EACK,MAOTxsC,oBAAAA,EAAOy6T,gBAAkB,KACvBF,EAAsB,CAAC,CAAEzjV,UAAW+/C,EAAKgd,YACtCzmD,MAAK,KAEFoX,QAAQL,IAAI,6BAADvpC,OAA8Bi8D,EAAKgd,SAAQ,cAAa,IAEtExa,OAAM,KAEH70B,QAAQzpB,MAAM,8BAA8B,GAC9C,EAGFivD,GACKlzE,EAAAA,EAAAA,KAACkjW,GAAc,IAGpBjwR,GACKjzE,EAAAA,EAAAA,KAACsjW,GAAsB,IAGzB,KAAI,iLC1Cb,IAAgB,qBAAqB,mCAAmC,oBAAoB,mCCC5F,GCWIM,CAAC3qR,EAAI5iB,EAAQC,KACf,MAAM,WAAE4iB,EAAU,KAAEt2E,EAAI,MAAEqhB,EAAK,QAAEuyC,IAAYC,EAAAA,EAAAA,GAI3C,CAACxhD,EAAAA,MACDyhD,EAAAA,EAAAA,GAAgB5+C,EAAAA,IAA2Bu+C,GAC3CC,GAGF,MAAO,CAACE,EAAS5zD,EAAMqhB,EAAOi1D,EAAW,ECrB3C,GCQ0B2qR,KAIxB,MAAM,YAAEvsS,EAAW,UAAEjJ,EAAS,MAAEpqC,EAAK,KAAErhB,IAAS20D,EAAAA,GAAAA,GAC9C9+C,EAAAA,IACA,CACE86E,UAAWA,IACFja,GAAAA,EAAYkgB,kBAAkB,CAEnC/oE,UAAYptB,GACVA,EAAMszD,SAAS,KAAO1hD,EAAAA,QAMhC,MAAO,EACLuiD,EAAAA,EAAAA,IAAiBF,GACjB10D,EACAqhB,EACAoqC,EACD,EC9BH,SCeA,WACE,MAAM,WAAE5uC,IAAeC,EAAAA,EAAAA,OAChB,CAAEokV,GAAoBF,QAC3B5gW,EACA,CAAE0gE,YAAY,GACd,CAAE5jC,QAASrgB,IAEPskV,EAcR,WACE,MAAMvzR,GAAgBrb,EAAAA,GAAAA,IAAUxxC,GAAUA,EAAM6sD,gBAC1Cpb,GAAcD,EAAAA,GAAAA,IAAUxxC,GAAUA,EAAMyxC,eACvC4uS,GAAcH,KASf7tS,EAA0B,CAC9Bu9B,UATgB5wF,SAMTqhW,EAAW,CALiC,CACjDx0Q,KAAM,CACJy0Q,mCAAmC,IAGZ,CAAEvgS,YAAY,KAASq1D,QAAQ3jE,GAI1DxwC,MAAO,oCACPu0C,MAAO,CACL+qS,MAAOC,GACPC,KAAMD,IAER9iV,SACEjH,EAAAA,EAAAA,MAAA,OACE+E,UAAWK,GAAO,sBAAsBtf,SAAA,EAGxCka,EAAAA,EAAAA,MAAA,OAAAla,SAAA,EACEF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACTC,SAAS,aACTC,WAAW,MACXqK,MAAM,qBACNnF,GAAG,KACH5G,UAAWK,GAAO,qBAAqBtf,SACxC,uCAGDF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACTC,SAAS,eACTsK,MAAM,qBACNrK,WAAW,MACXkF,GAAG,IACHoF,MAAM,OAAMjrB,SACb,sVAQHka,EAAAA,EAAAA,MAAA,OAAAla,SAAA,EACEF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACTC,SAAS,aACTC,WAAW,MACXqK,MAAM,qBACNnF,GAAG,KACH5G,UAAWK,GAAO,qBAAqBtf,SACxC,sCAGDF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACTC,SAAS,eACTsK,MAAM,qBACNrK,WAAW,MACXkF,GAAG,IACHoF,MAAM,OAAMjrB,SACb,8ZAUHF,EAAAA,EAAAA,KAAA,OAAAE,UACEka,EAAAA,EAAAA,MAACuG,GAAAA,GAAU,CACTC,SAAS,eACTsK,MAAM,qBACNrK,WAAW,MACXkF,GAAG,IACHoF,MAAM,OAAMjrB,SAAA,CACb,oHAE8C,KAC7CF,EAAAA,EAAAA,KAAC2gB,GAAAA,GAAU,CACToF,GAAG,IACH5G,UAAU,OACViM,KAAK,0BACLpD,OAAO,SAAQ9nB,SAChB,qBAEY,YAMrBk6C,OAAQ,CACNyT,KAAM,OACNvqC,QAAS8xC,IAGb,MAAO,IAAMob,EAAcxa,EAC7B,CArH4BquS,IAE1B58U,EAAAA,EAAAA,YAAU,KACY,OAAhBq8U,QAAgB,IAAhBA,GAAAA,EAAkBlhW,KAAKqhW,mCACzBF,GACF,GACC,CAACA,EAAmBD,GACzB,ECyBMQ,IAAWr0S,EAAAA,EAAAA,IAAkB,IAAM,sNACnCs0S,IAAQt0S,EAAAA,EAAAA,IAAkB,IAAM,uFAChCu0S,IAAev0S,EAAAA,EAAAA,IAAkB,IAAM,mIACvCw0S,IAAkBx0S,EAAAA,EAAAA,IACtB,IAAM,8JAEFy0S,IAAmBz0S,EAAAA,EAAAA,IACvB,IAAM,+JAEF00S,IAAa10S,EAAAA,EAAAA,IAAkB,IAAM,mIACrC20S,IAAiB30S,EAAAA,EAAAA,IACrB,IAAM,mIAEF40S,IAAW50S,EAAAA,EAAAA,IAAkB,IAAM,wFACnC60S,IAAc70S,EAAAA,EAAAA,IAAkB,IAAM,mIACtC80S,IAAc90S,EAAAA,EAAAA,IAAkB,IAAM,kIACtC+0S,IAAe/0S,EAAAA,EAAAA,IAAkB,IAAM,mIACvCg1S,IAAoBh1S,EAAAA,EAAAA,IACxB,IAAM,mIAEF+yJ,IAAW/yJ,EAAAA,EAAAA,IAAkB,IAAM,wFACnCi1S,IAA2Bj1S,EAAAA,EAAAA,IAC/B,IAAM,mIAEFk1S,IAAcl1S,EAAAA,EAAAA,IAAkB,IAAM,mIACtCm1S,IAAan1S,EAAAA,EAAAA,IAAkB,IAAM,mIACrCo1S,IAAoBp1S,EAAAA,EAAAA,IACxB,IAAM,mIAEFq1S,IAAkBr1S,EAAAA,EAAAA,IACtB,IAAM,mIAEFs1S,IAAgBt1S,EAAAA,EAAAA,IAAkB,IAAM,mIACxCu1S,IAAsBv1S,EAAAA,EAAAA,IAC1B,IAAM,mIAEFw1S,IAASx1S,EAAAA,EAAAA,IAAkB,IAAM,oNACjCy1S,IAAUz1S,EAAAA,EAAAA,IAAkB,IAAM,qFAClC01S,IAAU11S,EAAAA,EAAAA,IAAkB,IAAM,uFAClCvV,IAAQuV,EAAAA,EAAAA,IAAkB,IAAM,sNAChCsuL,IAAOtuL,EAAAA,EAAAA,IAAkB,IAAM,wFAC/B21S,IAAgB31S,EAAAA,EAAAA,IAAkB,IAAM,wFC/F9C,GDiG0B41S,KACxB,MAAMC,EAAa3J,GACjBjtS,EAAAA,GAAcjW,OACd0pT,EAAAA,GAAiB1pT,SAEb,SAAE6e,EAAQ,IAAEroC,IAAQsoC,EAAAA,EAAAA,OAE1BtwC,EAAAA,EAAAA,YAAU,MACR4+D,EAAAA,GAAAA,GAA6BvuB,EAAU,CAAEwtB,OAAO,EAAO71D,IAAKA,GAAM,GAEjE,IAEH,MAAM,WAAEhQ,IAAeC,EAAAA,EAAAA,OACjB,UAAEszD,IAAcG,EAAAA,EAAAA,OACf,CAAC,CAAG4yR,IAAyBpU,EAAAA,EAAAA,GAClC7tR,EAAAA,EAAmBC,eAYrB,OATA76C,EAAAA,GAAAA,IAAS,KACHzJ,GACFsmV,GACF,IAIFC,MAGEhmW,EAAAA,EAAAA,KAACimW,GAAAA,EAAc,CAAA/lW,UACbka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,4BAA2Bjf,SAAA,EACxCF,EAAAA,EAAAA,KAACiiW,GAAQ,IACRxiV,IACCrF,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,EACEF,EAAAA,EAAAA,KAACq9V,GAAa,KAKZ6D,OAAuBlhW,EAAAA,EAAAA,KAACkmW,GAAgB,QAG9C9rV,EAAAA,EAAAA,MAAC+rV,GAAW,CAAAjmW,SAAA,EACVF,EAAAA,EAAAA,KAAC47V,GAAM,KACP57V,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,6BAA4Bjf,UACzCka,EAAAA,EAAAA,MAACna,GAAAA,EAAa,CAAAC,SAAA,EACZF,EAAAA,EAAAA,KAACwjW,GAAU,KACXxjW,EAAAA,EAAAA,KAAC61D,EAAAA,SAAQ,CAACC,SAAU,KAAK51D,UACvBka,EAAAA,EAAAA,MAACqgQ,EAAAA,GAAM,CAAAv6Q,SAAA,EACLF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACxuP,KAAMhG,EAAAA,GAAUsgE,OAAK,EAACr6D,GAAI66U,KACpC9lW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMs9D,EAAAA,GAAoBrvC,KAC1Bl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAACskW,GAAQ,SAIftkW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMu9D,GAAAA,EAAkBtvC,KACxBl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAACylW,GAAM,SAIbzlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMs+D,GAAAA,EAAmBrwC,KACzBl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAAC0lW,GAAO,SAId1lW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMo/D,GAAAA,EAAiBnxC,KACvBl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAACukW,GAAK,SAIZvkW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMg/D,EAAAA,GAAyB/wC,KAC/Bl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAAC4lW,GAAa,SAIpB5lW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMk5D,EAAAA,GAAiBC,QACvBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACwkW,GAAY,OAE9CxkW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMw/D,GAAAA,EAAmBvxC,KACzBl5C,OAAQA,KAAuBC,EAAAA,EAAAA,KAAC2lW,GAAO,OAEzC3lW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM0/D,EAAAA,GAAoBzxC,KAC1Bl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAAC8vD,GAAAA,EAAkB,CACjB7uC,WACW,OAAT+xD,QAAS,IAATA,OAAS,EAATA,EAAWlvD,QAASliB,EAAAA,IAAcy0E,aAEpCn1D,KAAOhhB,IACLF,EAAAA,EAAAA,KAACqmW,GAAAA,EAAgB,CACf97U,mBAAoB5oB,EAAAA,IAAiB2kW,MACrC97U,YAAsB,OAATwoD,QAAS,IAATA,OAAS,EAATA,EAAWqK,eACxB/yD,cAAY,EAAApqB,SAEXA,IAGLihB,MAAQjhB,GAAaA,EAASA,UAE9BF,EAAAA,EAAAA,KAAC6kW,GAAQ,WAKjB7kW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMo5D,EAAAA,GAAoBD,QAC1BpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACykW,GAAe,OAEjDzkW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMg6D,EAAAA,GAAqBb,QAC3BpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAAC0kW,GAAgB,OAElD1kW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMw5D,EAAAA,GAAeL,QACrBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAAC2kW,GAAU,OAE5C3kW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM45D,EAAAA,GAAmBT,QACzBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAAC4kW,GAAc,OAEhD5kW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMq5D,EAAAA,GAAgBF,QACtBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAAC+kW,GAAW,OAE7C/kW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM8+D,EAAAA,GAAoB7wC,KAC1Bl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAACgjN,GAAQ,SAIfhjN,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMu7U,EAAAA,GAAsBttT,KAC5Bl5C,OAAQA,KAAuBC,EAAAA,EAAAA,KAAC8kW,GAAW,OAE7C9kW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMy5D,GAAAA,EAAiBN,QACvBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACglW,GAAY,OAE9ChlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMu5D,GAAAA,EAA6BJ,QACnCpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACklW,GAAwB,OAE1DllW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMs5D,GAAAA,EAAgBH,QACtBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACmlW,GAAW,OAE7CnlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM05D,GAAAA,EAAeP,QACrBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAAColW,GAAU,OAE5CplW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM85D,GAAAA,EAAsBX,QAC5BpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACqlW,GAAiB,OAEnDrlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM65D,GAAAA,EAAoBV,QAC1BpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACslW,GAAe,OAEjDtlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM+5D,GAAAA,EAAkBZ,QACxBpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACulW,GAAa,OAE/CvlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM25D,GAAAA,EAAwBR,QAC9BpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACwlW,GAAmB,OAErDxlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMw7U,GAAAA,EAAqBriR,QAC3BpkF,OAAQA,KAAuBC,EAAAA,EAAAA,KAACilW,GAAiB,OAEnDjlW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM6/D,GAAAA,EAAgB5xC,KACtBl5C,OAAQA,KACNC,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAACu+O,GAAI,SAIXv+O,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM4+D,GAAAA,EAAuB3wC,KAC7Bl5C,OAAQA,KAAuBC,EAAAA,EAAAA,KAAC06C,GAAK,OAEvC16C,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACr6Q,OAAQA,KAAoBC,EAAAA,EAAAA,KAACyqS,EAAAA,EAAQ,uBAOzC,oCE5SrB,MAAMg8D,IAAcx2S,EAAAA,EAAAA,IAAkB,IAAM,uFACtCy2S,IAAgBz2S,EAAAA,EAAAA,IAAkB,IAAM,wFAE9C,SAAS02S,KACP,OACE3mW,EAAAA,EAAAA,KAAC61D,EAAAA,SAAQ,CAACC,UAAU91D,EAAAA,EAAAA,KAACupB,GAAAA,EAAM,IAAIrpB,UAC7Bka,EAAAA,EAAAA,MAACqgQ,EAAAA,GAAM,CAAAv6Q,SAAA,EACLF,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM47U,EAAAA,GAAkB9mV,MAAOuwB,UAAWo2T,MACjDzmW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM47U,EAAAA,GAAkB9mQ,QAASzvD,UAAWq2T,MACnD1mW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAAC/pO,UAAWo6P,EAAAA,QAI1B,CAEA,MCpBA,GDoBejlR,EAAAA,KAAWmhV,IEdpBE,IAAiB52S,EAAAA,EAAAA,IAAkB,IAAM,wFCN/C,GDQ4B62S,KAExB9mW,EAAAA,EAAAA,KAACC,GAAAA,EAAa,CAAAC,UACZF,EAAAA,EAAAA,KAAComW,EAAAA,EAAS,CAAAlmW,UACRF,EAAAA,EAAAA,KAAC61D,EAAAA,SAAQ,CAACC,SAAU,KAAK51D,UACvBka,EAAAA,EAAAA,MAACqgQ,EAAAA,GAAM,CAAAv6Q,SAAA,EACLF,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAM+7U,EAAAA,GAAoBzmQ,OAC1BjwD,UAAWw2T,MAEb7mW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACr6Q,OAAQA,KAAoBC,EAAAA,EAAAA,KAACyqS,EAAAA,EAAQ,+EEZxD,MCNA,GDMyBu8D,MACvB99U,EAAAA,GAAAA,IAAS,MACP9Q,EAAAA,EAAAA,OAAiB2gH,SAAQ,MACvBn1D,EAAAA,GAAAA,KACAhkD,GAAAA,EAAQmF,KAAKlF,EAAAA,GAAUC,QAAQ,GAC/B,KAGG9f,EAAAA,EAAAA,KAACupB,GAAAA,EAAM,KE0MhB,UAAe09U,EAAAA,EAAAA,IAxLf,WACE,MAAM,SAAEnvS,IAAaC,EAAAA,EAAAA,MASrB,OAJAtwC,EAAAA,EAAAA,YAAU,KACRtC,OAAOsmC,SAAS,EAAG,EAAE,GACpB,CAACqM,KAGF19C,EAAAA,EAAAA,MAACqgQ,EAAAA,GAAM,CAAAv6Q,SAAA,EAGLF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACl0L,OAAK,EAAC4mB,KAAK,SAASjhF,GAAIpL,EAAAA,GAAUC,WAC5C9f,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACl0L,OAAK,EAAC4mB,KAAK,UAAUjhF,GAAIpL,EAAAA,GAAUquC,YAC7CluD,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPl0L,OAAK,EACL4mB,KAAK,mBACLjhF,GAAI4mU,EAAAA,GAAgBv0P,kBAEtBt9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACl0L,OAAK,EAAC4mB,KAAK,kBAAkBjhF,GAAI03U,EAAAA,GAAiBn6Q,YAC5DxoF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPl0L,OAAK,EACL4mB,KAAK,qBACLjhF,GAAI03U,EAAAA,GAAiB75Q,eAEvB9oF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACl0L,OAAK,EAAC4mB,KAAK,gBAAgBjhF,GAAI03U,EAAAA,GAAiBx5Q,UAC1DnpF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPl0L,OAAK,EACL4mB,KAAK,sBACLjhF,GAAI03U,EAAAA,GAAiBr7R,gBAEvBtnE,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPl0L,OAAK,EACL4mB,KAAK,qBACLjhF,GAAI03U,EAAAA,GAAiB95Q,cAEvB7oF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACl0L,OAAK,EAAC4mB,KAAK,iBAAiBjhF,GAAI03U,EAAAA,GAAiBl6Q,WAC3DzoF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACl0L,OAAK,EAAC4mB,KAAK,kBAAkBjhF,GAAI03U,EAAAA,GAAiB/5Q,YAC5D5oF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPl0L,OAAK,EACL4mB,KAAK,sBACLjhF,GAAI03U,EAAAA,GAAiBz5Q,gBAIvBlpF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,aAAajhF,GAAIo3U,EAAAA,GAAY75Q,OAAO6U,QACnDr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAIo3U,EAAAA,GAAY75Q,OAAOlK,YACvDt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAI03U,EAAAA,GAAiBn6Q,YACrDxoF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,YAAYjhF,GAAIo3U,EAAAA,GAAY55Q,MAAM4U,QACjDr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,gBAAgBjhF,GAAIo3U,EAAAA,GAAY55Q,MAAMnK,YACrDt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,gBAAgBjhF,GAAI03U,EAAAA,GAAiBl6Q,WACpDzoF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,gBAAgBjhF,GAAIo3U,EAAAA,GAAYv5Q,UAAUuU,QACzDr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,oBAAoBjhF,GAAIo3U,EAAAA,GAAYv5Q,UAAUxK,YAC7Dt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,oBAAoBjhF,GAAI03U,EAAAA,GAAiB75Q,eACxD9oF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAIo3U,EAAAA,GAAY/6R,WAAW+1B,QAC3Dr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,qBACLjhF,GAAIo3U,EAAAA,GAAY/6R,WAAWgX,YAE7Bt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,WAAWjhF,GAAIo3U,EAAAA,GAAYl5Q,KAAKkU,QAC/Cr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,eAAejhF,GAAIo3U,EAAAA,GAAYl5Q,KAAK7K,YACnDt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,eAAejhF,GAAI03U,EAAAA,GAAiBx5Q,UACnDnpF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAIo3U,EAAAA,GAAYn5Q,WAAWmU,QAC3Dr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,qBACLjhF,GAAIo3U,EAAAA,GAAYn5Q,WAAW5K,YAE7Bt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,qBAAqBjhF,GAAI03U,EAAAA,GAAiBz5Q,gBACzDlpF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,UAAUjhF,GAAIo3U,EAAAA,GAAYj5Q,IAAIiU,QAC7Cr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,cAAcjhF,GAAIo3U,EAAAA,GAAYj5Q,IAAI9K,YACjDt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,cAAcjhF,GAAI03U,EAAAA,GAAiBv5Q,SAClDppF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,WAAWjhF,GAAIo3U,EAAAA,GAAYp5Q,KAAKoU,QAC/Cr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,eAAejhF,GAAIo3U,EAAAA,GAAYp5Q,KAAK3K,YACnDt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,eAAejhF,GAAI03U,EAAAA,GAAiB15Q,UACnDjpF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,yBACLjhF,GAAIo3U,EAAAA,GAAY35Q,kBAAkB2U,QAEpCr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,6BACLjhF,GAAIo3U,EAAAA,GAAY35Q,kBAAkBpK,YAEpCt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,6BACLjhF,GAAI03U,EAAAA,GAAiBj6Q,uBAEvB1oF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,eAAejhF,GAAIo3U,EAAAA,GAAYx5Q,SAASwU,QACvDr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,mBAAmBjhF,GAAIo3U,EAAAA,GAAYx5Q,SAASvK,YAC3Dt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,mBAAmBjhF,GAAI03U,EAAAA,GAAiB95Q,cACvD7oF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,oBAAoBjhF,GAAIo3U,EAAAA,GAAYvmQ,aAAauB,QAChEr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,wBACLjhF,GAAIo3U,EAAAA,GAAYvmQ,aAAaxd,YAE/Bt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,wBACLjhF,GAAI03U,EAAAA,GAAiB7mQ,kBAEvB97F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,kBAAkBjhF,GAAIo3U,EAAAA,GAAYt5Q,WAAWsU,QAC5Dr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPttK,KAAK,sBACLjhF,GAAIo3U,EAAAA,GAAYt5Q,WAAWzK,YAE7Bt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,sBAAsBjhF,GAAI03U,EAAAA,GAAiB55Q,gBAC1D/oF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,eAAejhF,GAAIo3U,EAAAA,GAAY15Q,SAAS0U,QACvDr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,mBAAmBjhF,GAAIo3U,EAAAA,GAAY15Q,SAASrK,YAC3Dt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,mBAAmBjhF,GAAI03U,EAAAA,GAAiBvjQ,gBACvDp/F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,aAAajhF,GAAIo3U,EAAAA,GAAYr5Q,OAAOqU,QACnDr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAIo3U,EAAAA,GAAYr5Q,OAAO1K,YACvDt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAI03U,EAAAA,GAAiB35Q,YACrDhpF,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,aAAajhF,GAAIo3U,EAAAA,GAAYz5Q,OAAOyU,QACnDr9F,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAIo3U,EAAAA,GAAYz5Q,OAAOtK,YACvDt+E,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CAACttK,KAAK,iBAAiBjhF,GAAI03U,EAAAA,GAAiB/5Q,YAIrD5oF,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM6mU,EAAAA,GAAgBluR,OAAQtzB,UAAW22T,MAChDhnW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAK,kBACLjrB,OAASK,IAELJ,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPvuP,GAAI4mU,EAAAA,GAAgBt0P,cAAgBn9F,EAAMglB,SAAS9hB,YAK3DtD,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPl0L,OAAK,EACL4mB,KAAK,uBACLjhF,GAAI4mU,EAAAA,GAAgBp0P,qBAEtBz9F,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAK,iBACLjrB,OAASK,IAELJ,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPvuP,GAAI4mU,EAAAA,GAAgBr0P,aAAep9F,EAAMglB,SAAS9hB,YAK1DtD,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAK,0BACLjrB,OACEK,IAGEJ,EAAAA,EAAAA,KAACw5Q,EAAAA,GAAQ,CACPvuP,GACEpL,EAAAA,GAAU69E,YAAY,CACpBC,SAAWv9F,EAAyCs/B,MACjDs2B,OAAO2nC,WACPv9F,EAAMglB,SAAS9hB,YAO9BtD,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM6mU,EAAAA,GAAgB54S,KAAM5I,UAAW62T,KAC9ClnW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM47U,EAAAA,GAAkB3tT,KAAM5I,UAAWs2T,MAEhD3mW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACpvP,KAAM+7U,EAAAA,GAAoB9tT,KAAMl5C,OAAQA,KAAMC,EAAAA,EAAAA,KAAC8mW,GAAS,OAC/D9mW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CACJpvP,KAAMhG,EAAAA,GACNjlB,OAAQA,KACNC,EAAAA,EAAAA,KAAC67E,EAAAA,GAAiB,CAAA37E,UAChBF,EAAAA,EAAAA,KAACk2E,GAAAA,GAAoB,CAAAh2E,UACnBF,EAAAA,EAAAA,KAAC6yE,GAAAA,GAAkB,CAAA3yE,UACjBF,EAAAA,EAAAA,KAAC6lW,GAAO,aAOlB7lW,EAAAA,EAAAA,KAACo6Q,EAAAA,GAAK,CAACr6Q,OAAQA,KAAmBC,EAAAA,EAAAA,KAACyqS,EAAAA,EAAQ,QAGjD,2LC5KA,MC1CA,GD0C2CrqS,IACzC,MAAM,QACJmhB,EAAU,UAAS,MACnBqD,EAAK,YACLC,EAAW,GACX6B,EAAE,UACFklC,EAAS,YACT8rB,EAAc,OAAM,YACpBC,EAAW,OACXv9B,GACEh6C,EAEJ,OACEJ,EAAAA,EAAAA,KAACovD,GAAAA,EAAOC,IAAG,CACT8iP,SAAU,CACRj2P,QAAS,CAAEhe,EAAG,SACdoxB,QAAS,CAAEpxB,EAAG,GACdwxB,KAAM,CAAExxB,EAAG,UAEbge,QAAQ,UACRoT,QAAQ,UACRI,KAAK,OACLzZ,WAAY,CAAEuV,SAAU,IACxBrsC,UAAWI,KAAW,eAAe,iBAADzb,OAAmByd,GAAW,CAChE,6BAA8C,SAAhBm2D,IAEhCjrD,KAAkB,UAAZlL,EAAsB,QAAU,SAASrhB,UAE/Cka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,+BAA8Bjf,SAAA,EAC3CF,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,4BACf/E,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,wBAAuBjf,SAAA,EACpCka,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,qBAAoBjf,SAAA,CACpB,YAAZqhB,IACCvhB,EAAAA,EAAAA,KAAC83V,GAAAA,EAAe,CAACpwU,WAAW,oBAAoBtI,KAAK,SAE1C,UAAZmC,IACCvhB,EAAAA,EAAAA,KAACmnW,GAAAA,EAAe,CAACz/U,WAAW,aAAatI,KAAK,aAGlDhF,EAAAA,EAAAA,MAAA,OAAK+E,UAAU,qBAAoBjf,SAAA,EACjCF,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CACHoF,MAAM,oBACNrK,WAAW,OACX1B,UAAU,sBACVmB,WAAW,iBAAgBpgB,SAE1B0kB,IAEFC,IACC7kB,EAAAA,EAAAA,KAAC8lB,EAAAA,EAAI,CACHoF,MAAM,sBACN/L,UAAU,4BACV0B,WAAW,YACXU,QAAQ,UACRjB,WAAW,uBAAsBpgB,SAEhC2kB,OAINu1B,IACCp6C,EAAAA,EAAAA,KAACisD,EAAAA,GAAM,CACL1qC,QAAQ,QACRnC,KAAK,QACLkE,QAAS82B,EAAO92B,QAChBupC,KAAOzS,EAAO2S,eAA0B/pD,EAAdo3C,EAAOyS,KACjCE,UAAa3S,EAAO2S,UAAY3S,EAAOyS,UAAO7pD,EAAU9C,SAEvDk6C,EAAOyT,WAId7tD,EAAAA,EAAAA,KAAA,UACEmf,UAAU,8BACVmE,QAASA,IAAMsoC,EAAUllC,GAAIxmB,UAG7BF,EAAAA,EAAAA,KAACgsD,GAAAA,EAAS,CAAC5sC,KAAK,OAAOsI,WAAW,0BAEnB,SAAhBgwD,IACC13E,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,sBAAqBjf,UAClCF,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,oCADyBw4D,OAKnC,EE/HjB,GCI6Dv2D,IAAmB,IAAlB,SAAElhB,GAAUkhB,EACxE,MAAM61D,GAAY9U,EAAAA,GAAAA,IAAax+C,GAAUA,EAAMszD,YACzCC,GAAkB/U,EAAAA,GAAAA,IAAax+C,GAAUA,EAAMuzD,kBAErD,OACE98D,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAna,SAAA,CACGA,GACDF,EAAAA,EAAAA,KAAA,OAAKmf,UAAU,wBAAuBjf,UACpCF,EAAAA,EAAAA,KAACouS,GAAAA,EAAe,CAAAluS,SACb+2E,EAAU3uD,KAAK8uD,IAEZp3E,EAAAA,EAAAA,KAAConW,GAAQ,IAEHhwR,EACJxrB,UAAWsrB,GAFNE,EAAS1wD,YAQvB,oCCmBP,SA9BA,WAWE,OAVAwC,EAAAA,GAAAA,IAAS,MAGP88D,EAAAA,GAAAA,GACEpmE,GAAAA,EAAQwF,SAAS0yC,SACjBl4C,GAAAA,EAAQwF,SAAS9hB,OAClB,KAKDtD,EAAAA,EAAAA,KAACy1Q,EAAAA,GAAa,CAAC9vL,SAAUz8C,oBAAAA,EAAO8kD,UAAU9tF,UACxCF,EAAAA,EAAAA,KAAC01Q,EAAAA,GAAM,CAAC91P,QAASA,GAAAA,EAAQ1f,UACvBka,EAAAA,EAAAA,MAAC09D,GAAAA,GAAa,CAAA53E,SAAA,EACZF,EAAAA,EAAAA,KAACqnW,GAAiB,KAClBrnW,EAAAA,EAAAA,KAACC,GAAAA,EAAa,CAAAC,UACZF,EAAAA,EAAAA,KAACsvR,GAAAA,GAAmB,CAACv6L,OAAQzb,GAAAA,EAAYp5E,UACvCka,EAAAA,EAAAA,MAACy/D,EAAAA,GAAY,CAAA35E,SAAA,EACXF,EAAAA,EAAAA,KAACsnW,GAAM,KACPtnW,EAAAA,EAAAA,KAAC6wV,EAAO,iBAQxB,EC9BoB1kT,QACW,cAA7BhnB,OAAOC,SAAS86P,UAEe,UAA7B/6P,OAAOC,SAAS86P,UAEhB/6P,OAAOC,SAAS86P,SAASxgP,MACvB,2HCRN,SARA,WAEEh7B,GAAAA,EAAMo1R,SAASmG,SAAUr6M,EAAAA,GAAAA,GAAgB,WACzClhF,GAAAA,EAAMo1R,SAASmH,iBAAkB,EACjCv8R,GAAAA,EAAMo1R,SAASj1N,QAAU,KACzBngE,GAAAA,EAAMo1R,SAASt2R,QAAQ+3R,OAAO,gBAAkBryP,oBAAAA,EAAOq+T,UACzD,ECAA,SATA,WACGr+T,oBAAAA,EAAe23T,SAAUh1Q,EACzB3iD,oBAAAA,EAAes+T,UAAW37Q,EAC1B3iD,oBAAAA,EAAeu+T,WAAY57Q,EAC3B3iD,oBAAAA,EAAew+T,UAAW77Q,EAC1B3iD,oBAAAA,EAAey+T,gBAAiB97Q,EAChC3iD,oBAAAA,EAAe0+T,OAAsC,SAA7B/7Q,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAYg8Q,YACvC,kECLA,MAAM,yBAAEC,IAA6Bj8Q,CAAAA,yBAAAA,4CAyBrC,SApBA,WACE,MAAM,WAAEk8Q,EAAU,mBAAEC,GAAuB9+T,oBAAAA,Ej2BF7C,IAAArmC,Ei2BIqBklW,EAAWroU,MAAM,gCj2BJtC78B,Ei2BOgB,CACV2oG,IAAKu8P,EACL1uP,QAASyuP,GACT1uP,YAAa4uP,EACbr/P,aAAc,CAIZ,sCj2BdRkE,UAAAhqG,EAAAgqG,WAAA,GACAhqG,EAAAgqG,UAAAC,IAAAjqG,EAAAgqG,UAAAC,KAAA,CACA/yF,KAAA,0BACAq+F,SAAA,CACA,CACAr+F,KAAA,oBACAge,QAAAosF,GAAAA,IAGApsF,QAAAosF,GAAAA,IAEA8jP,EAAAA,GAAAA,IAAAplW,Gi2BOA,oCCnBA,MAwBA,GAxB8BqlW,KAE5B,KAAK97Q,EAAAA,GAAAA,GAAmB,kBACtB,OAImBhoF,KAAKw6E,MACxBz5D,OAAO0+C,eAAenC,QAAQoC,EAAAA,EAAmBuoB,sBAC/C,UAMF35C,YAAW,KACTvtB,OAAO0+C,eAAelC,QACpBmC,EAAAA,EAAmBuoB,oBACnB,QACD,GACA,IACL,oCCbF87Q,KACAC,KACAC,KCFEr7U,OAAOsC,KAAKovD,GAAAA,GAAgB9+C,SAASnQ,IACnC,MAAM9H,EAAQuhB,oBAAAA,EAAOzZ,GAQjB9H,GAASA,EAAMmnB,WAAW,SAAW5F,oBAAAA,EAAO23T,UAC9C33T,oBAAAA,EAAOzZ,GAAOo8D,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAY,aAAD/nF,OAAc2rB,KAAU,GACnD,IAKEoxU,UAIGh1Q,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAYy8Q,wBAGfp/T,oBAAAA,EAAO89B,eAAiB6kB,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAYy8Q,wBAFpCp/T,oBAAAA,EAAOi4T,iBAAmB,OAa1Bj4T,oBAAAA,EAAOq/T,gBAFP,kCADA18Q,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAY28Q,kCAGa,4BAEA,0BAMvB38Q,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAY48Q,wBACdv/T,oBAAAA,EAAOw/T,YACL78Q,CAAAA,SAAAA,aAAAA,WAAAA,IAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,qBAAAA,aAAAA,qBAAAA,GAAAA,yBAAAA,4CAAY48Q,uBAAyBv/T,oBAAAA,EAAOw/T,cDvCpDR,KAEA,MAAMS,GAAgBngV,SAASs7B,eAAe,QACjCg/M,EAAAA,EAAAA,YAAW6lG,IACnB5oW,QAAOC,EAAAA,EAAAA,KAAC4oW,GAAG,KL2GV,kBAAmB9yU,WACrBA,UAAU+yU,cAAcC,MAAMxyU,MAAKyyU,IACjCA,EAAaC,YAAY","sources":["HOC/withErrorBoundary/withErrorBoundary.tsx","HOC/withErrorBoundary/index.ts","api-client/api.ts","api-client/base.ts","webpack://ui/./src/components/AssetTypeIcon/AssetTypeIcon.module.scss?c139","components/Svg/icons/IconGroup.tsx","components/Svg/icons/IconMLModel.tsx","components/Svg/icons/IconUDF.tsx","components/Svg/icons/IconVectorSearch.tsx","components/Svg/icons/IconCSV.tsx","components/Svg/icons/IconDOCX.tsx","components/Svg/icons/IconPDF.tsx","components/Svg/icons/IconGIF.tsx","components/Svg/icons/IconZIP.tsx","components/Svg/icons/IconHDF.tsx","components/Svg/icons/IconHTML.tsx","components/Svg/icons/IconJPEG.tsx","components/Svg/icons/IconJSON.tsx","components/Svg/icons/IconMP4.tsx","components/Svg/icons/IconPNG.tsx","components/Svg/icons/IconTAR.tsx","components/Svg/icons/IconTIFF.tsx","components/Svg/icons/IconTXT.tsx","components/Svg/icons/IconVCard.tsx","components/Svg/icons/IconWAV.tsx","components/Svg/icons/IconXML.tsx","components/AssetTypeIcon/AssetTypeIcon.tsx","components/AssetTypeIcon/index.ts","components/AuthGuard/AuthGuard.tsx","components/AuthGuard/index.ts","components/Avatar/Avatar.tsx","components/Avatar/index.ts","components/ConditionalWrapper/ConditionalWrapper.tsx","components/ConditionalWrapper/index.ts","components/Dialog/Dialog.tsx","components/Dialog/index.ts","components/ErrorBoundary/ErrorBoundary.tsx","components/ErrorBoundary/CustomErrorBoundary/CustomErrorBoundary.tsx","components/ErrorBoundary/CustomErrorBoundary/index.ts","components/ErrorBoundary/index.ts","components/Form/InputText/InputText.tsx","components/Head/Head.tsx","components/LazyLoadListWrapper/LazyLoadListWrapper.tsx","components/LazyLoadListWrapper/index.ts","components/Loader/Loader.tsx","components/Loader/index.ts","components/Head/index.ts","components/Page/Page.tsx","components/Page/index.ts","components/PermissionsGuard/PermissionsGuard/PermissionsGuard.tsx","components/PermissionsGuard/PermissionsGuard/index.ts","components/Svg/icons/IconLoadCircle.tsx","components/Spinner/index.ts","components/Spinner/Spinner.tsx","components/Svg/Svg.tsx","components/Svg/icons/IconArray.tsx","components/Svg/icons/IconBiomedicalImaging.tsx","components/Svg/icons/IconBook.tsx","components/Svg/icons/IconBulletsHorizontal.tsx","components/Svg/icons/IconCarretRight.tsx","components/Svg/icons/IconCheckFilled.tsx","components/Svg/icons/IconCheckMark.tsx","components/Svg/icons/IconClose.tsx","components/Svg/icons/IconClosefilled.tsx","components/Svg/icons/IconDashboard.tsx","components/Svg/icons/IconDatabase.tsx","components/Svg/icons/IconDocumentation.tsx","components/Svg/icons/IconDollar.tsx","components/Svg/icons/IconExternalLinkOutlined.tsx","components/Svg/icons/IconEye.tsx","components/Svg/icons/IconEyeHidden.tsx","components/Svg/icons/IconFile.tsx","components/Svg/icons/IconGeometry.tsx","components/Svg/icons/IconLaunch.tsx","components/Svg/icons/IconMagnifyingGlass.tsx","components/Svg/icons/IconMembers.tsx","components/Svg/icons/IconMoon.tsx","components/Svg/icons/IconNotebook.tsx","components/Svg/icons/IconPlus.tsx","components/Svg/icons/IconPointCloud.tsx","components/Svg/icons/IconQuestionmarkFilled.tsx","components/Svg/icons/IconRaster.tsx","components/Svg/icons/IconSOMA.tsx","components/Svg/icons/IconSettings.tsx","components/Svg/icons/IconSparkles.tsx","components/Svg/icons/IconStore.tsx","components/Svg/icons/IconSun.tsx","components/Svg/icons/IconSystemStatus.tsx","components/Svg/icons/IconTaskGraph.tsx","components/Svg/icons/IconTrash.tsx","components/Svg/icons/IconVCF.tsx","components/Svg/icons/IconWarning.tsx","components/Text/Text.tsx","components/Text/index.ts","components/Tooltip/Tooltip.tsx","components/Tooltip/index.ts","../node_modules/@gilbarbara/deep-equal/src/helpers.ts","../node_modules/@gilbarbara/deep-equal/src/index.ts","../node_modules/tree-changes/node_modules/is-lite/src/index.ts","../node_modules/tree-changes/src/helpers.ts","../node_modules/tree-changes/src/index.ts","../node_modules/is-lite/src/index.ts","../node_modules/popper.js/src/utils/isBrowser.js","../node_modules/popper.js/src/utils/debounce.js","../node_modules/popper.js/src/utils/isFunction.js","../node_modules/popper.js/src/utils/getStyleComputedProperty.js","../node_modules/popper.js/src/utils/getParentNode.js","../node_modules/popper.js/src/utils/getScrollParent.js","../node_modules/popper.js/src/utils/getReferenceNode.js","../node_modules/popper.js/src/utils/isIE.js","../node_modules/popper.js/src/utils/getOffsetParent.js","../node_modules/popper.js/src/utils/getRoot.js","../node_modules/popper.js/src/utils/findCommonOffsetParent.js","../node_modules/popper.js/src/utils/isOffsetContainer.js","../node_modules/popper.js/src/utils/getScroll.js","../node_modules/popper.js/src/utils/getBordersSize.js","../node_modules/popper.js/src/utils/getWindowSizes.js","../node_modules/popper.js/src/utils/getClientRect.js","../node_modules/popper.js/src/utils/getBoundingClientRect.js","../node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","../node_modules/popper.js/src/utils/includeScroll.js","../node_modules/popper.js/src/utils/isFixed.js","../node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","../node_modules/popper.js/src/utils/getBoundaries.js","../node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../node_modules/popper.js/src/utils/computeAutoPlacement.js","../node_modules/popper.js/src/utils/getReferenceOffsets.js","../node_modules/popper.js/src/utils/getOuterSizes.js","../node_modules/popper.js/src/utils/getOppositePlacement.js","../node_modules/popper.js/src/utils/getPopperOffsets.js","../node_modules/popper.js/src/utils/find.js","../node_modules/popper.js/src/utils/runModifiers.js","../node_modules/popper.js/src/utils/findIndex.js","../node_modules/popper.js/src/methods/update.js","../node_modules/popper.js/src/utils/isModifierEnabled.js","../node_modules/popper.js/src/utils/getSupportedPropertyName.js","../node_modules/popper.js/src/methods/destroy.js","../node_modules/popper.js/src/utils/getWindow.js","../node_modules/popper.js/src/utils/setupEventListeners.js","../node_modules/popper.js/src/methods/enableEventListeners.js","../node_modules/popper.js/src/methods/disableEventListeners.js","../node_modules/popper.js/src/utils/removeEventListeners.js","../node_modules/popper.js/src/utils/isNumeric.js","../node_modules/popper.js/src/utils/setStyles.js","../node_modules/popper.js/src/modifiers/computeStyle.js","../node_modules/popper.js/src/utils/isModifierRequired.js","../node_modules/popper.js/src/methods/placements.js","../node_modules/popper.js/src/utils/clockwise.js","../node_modules/popper.js/src/modifiers/flip.js","../node_modules/popper.js/src/modifiers/offset.js","../node_modules/popper.js/src/modifiers/index.js","../node_modules/popper.js/src/modifiers/shift.js","../node_modules/popper.js/src/modifiers/preventOverflow.js","../node_modules/popper.js/src/modifiers/keepTogether.js","../node_modules/popper.js/src/modifiers/arrow.js","../node_modules/popper.js/src/utils/getOppositeVariation.js","../node_modules/popper.js/src/modifiers/inner.js","../node_modules/popper.js/src/modifiers/hide.js","../node_modules/popper.js/src/utils/getRoundedOffsets.js","../node_modules/popper.js/src/modifiers/applyStyle.js","../node_modules/popper.js/src/utils/setAttributes.js","../node_modules/popper.js/src/methods/defaults.js","../node_modules/popper.js/src/index.js","../node_modules/react-floater/node_modules/is-lite/src/index.ts","../node_modules/react-floater/es/index.js","../node_modules/react-joyride/es/index.js","components/Tour/Tour.tsx","components/Tour/index.ts","components/Typography/Typography.tsx","components/Typography/index.ts","webpack://ui/./src/components/v2/Button/Button.module.scss?1f82","components/v2/Button/Button.tsx","components/v2/Button/FormikSubmitButton.tsx","components/v2/Button/index.ts","components/AuthPromptPlaceholder/AuthPromptPlaceholder.tsx","components/AuthPromptPlaceholder/index.ts","components/v2/Fetching/Fetching.tsx","components/v2/Fetching/index.ts","webpack://ui/./src/components/v2/Placeholder/Placeholder.module.scss?517d","components/v2/Placeholder/Placeholder.tsx","components/v2/Placeholder/index.ts","containers/ModalContainer/ModalContainer.tsx","containers/ModalContainer/index.ts","hooks/api/Arrays/useGetArray/useGetArray.ts","hooks/api/Arrays/useGetArray/index.ts","hooks/api/Assets/useListAssetSummaries/useListAssetSummaries.ts","hooks/api/Assets/useListAssetSummaries/index.ts","hooks/api/Groups/useGetGroup/useGetGroup.ts","hooks/api/Groups/useGetGroup/index.ts","hooks/api/Notebooks/useGetNotebookStatus/useGetNotebookStatus.ts","hooks/api/Notebooks/useGetNotebookStatus/index.ts","hooks/api/Onboarding/useAddCompletedOnboardingItems/useAddCompletedOnboardingItems.ts","hooks/api/Onboarding/useAddCompletedOnboardingItems/index.ts","hooks/api/Organizations/useGetOrganization/useGetOrganization.ts","hooks/api/Organizations/useGetOrganization/index.ts","hooks/api/Tasks/useGetTaskDetails/useGetTaskDetails.ts","hooks/api/Tasks/useGetTaskDetails/index.ts","hooks/api/Tasks/useGetTaskGraphDetails/useGetTaskGraphDetails.ts","hooks/api/Tasks/useGetTaskGraphDetails/index.ts","hooks/jupyter/useIsUserInJupyterPage/useIsUserInJupyterPage.ts","hooks/jupyter/useIsUserInJupyterPage/index.ts","hooks/jupyter/useJupyterOutgoingMessages/useJupyterOutgoingMessages.ts","hooks/jupyter/useJupyterOutgoingMessages/index.ts","hooks/useEventListener/useEventListener.ts","hooks/useEventListener/index.ts","hooks/jupyter/useOnJupyterIncomingMessage/useOnJupyterIncomingMessage.ts","hooks/jupyter/useOnJupyterIncomingMessage/index.ts","hooks/jupyter/useWaitForJupyterhubToBeReadyAfterShutdown/useWaitForJupyterhubToBeReadyAfterShutdown.tsx","hooks/jupyter/useWaitForJupyterhubToBeReadyAfterShutdown/index.ts","utils/helpers/date/epochToDate/epochToDate.ts","utils/helpers/date/epochToDate/index.ts","utils/helpers/date/millisecondsToSeconds/index.ts","utils/helpers/date/millisecondsToSeconds/millisecondsToSeconds.ts","utils/helpers/date/fragmentTimestampToDate/index.ts","utils/helpers/date/fragmentTimestampToDate/fragmentTimestampToDate.ts","utils/helpers/date/fragmentTimestampToDateTime/fragmentTimestampToDateTime.ts","utils/helpers/date/fragmentTimestampToDateTime/index.ts","hooks/useDate/useDate.ts","hooks/useDate/index.ts","hooks/useDidUpdateEffect/useDidUpdateEffect.ts","hooks/useDidUpdateEffect/index.ts","hooks/useEvent/useEvent.tsx","hooks/useEvent/index.ts","hooks/useFocus/useFocus.tsx","hooks/useFocus/index.ts","hooks/useInterval/useInterval.tsx","hooks/useKeyDown/useKeyDown.ts","hooks/useKeyDown/index.ts","hooks/useLocalStorage/useLocalStorage.tsx","hooks/useLocalStorage/index.ts","hooks/useMount/useMount.tsx","hooks/useMount/index.ts","hooks/useOnClickOutside/useOnClickOutside.ts","hooks/useOnClickOutside/index.ts","hooks/useRequest/useRequest.tsx","hooks/useScrollPosition/useScrollPosition.ts","hooks/useScrollPosition/index.ts","hooks/useSessionStorage/useSessionStorage.ts","hooks/useSessionStorage/index.ts","hooks/useTheme/useTheme.tsx","hooks/useTheme/index.ts","hooks/useTimeout/useTimeout.ts","hooks/useTimeout/index.ts","pages/NotFound/NotFound.tsx","pages/NotFound/index.ts","store/HeaderStore/HeaderStore.ts","store/HeaderStore/index.ts","store/HistoryStack/HistoryStack.ts","store/HistoryStack/index.ts","store/JupyterStore/JupyterStore.ts","store/JupyterStore/index.ts","store/ModalStore/ModalStore.ts","store/ModalStore/index.ts","hooks/api/Onboarding/useGetCompletedOnboardingItems/useGetCompletedOnboardingItems.ts","hooks/api/Onboarding/useGetCompletedOnboardingItems/index.ts","hooks/useEventCallback/useEventCallback.ts","hooks/useEventCallback/index.ts","components/Onboarding/onboardingFlows/onboardingFlows.ts","components/Onboarding/onboardingFlows/index.ts","hooks/api/Onboarding/useGetOnboardingState/useGetOnboardingState.ts","hooks/api/Onboarding/useGetOnboardingState/index.ts","store/OnboardingContext/OnboardingContext.tsx","utils/helpers/permissions/hasPermissions/hasPermissions.ts","utils/helpers/permissions/hasPermissions/index.ts","store/OrganizationContext/OrganizationContext.tsx","store/SnackbarStore/SnackbarStore.tsx","store/SnackbarStore/index.ts","store/ThemeContext/ThemeContext.tsx","store/ThemeContext/index.ts","hooks/api/User/useGetUser/useGetUser.ts","hooks/api/User/useGetUser/index.ts","hooks/api/User/useCheckLoginCookie/useCheckLoginCookie.ts","hooks/api/User/useCheckLoginCookie/index.ts","hooks/useQueryDataListener/useQueryDataListener.ts","hooks/useQueryDataListener/index.ts","store/UserContext/UserContext.tsx","store/UserPreferencesStore/UserPreferencesStore.ts","store/UserPreferencesStore/index.ts","store/WorkspaceContext/WorkspaceContext.tsx","store/WorkspaceSelectedStore/WorkspaceSelectedStore.ts","store/WorkspaceSelectedStore/index.ts","utils/constants/GlobalVariable/GlobalVariable.ts","utils/constants/IframeActions/IframeActions.ts","utils/constants/IframeActions/index.ts","utils/constants/MimeType/index.ts","utils/constants/MimeType/MimeType.ts","utils/constants/sessionStorageKeys/sessionStorageKeys.ts","utils/constants/sessionStorageKeys/index.ts","utils/constants/supportedRegions/supportedRegions.ts","utils/constants/supportedRegions/index.ts","utils/errors/ChunkLoadError/ChunkLoadError.ts","utils/errors/ChunkLoadError/index.ts","utils/errors/CustomError.ts","utils/errors/UnauthorizedError/UnauthorizedError.ts","utils/errors/ForbiddenError/ForbiddenError.ts","utils/errors/ForbiddenError/index.ts","utils/errors/NotFoundError/NotFoundError.ts","utils/errors/NotFoundError/index.ts","utils/helpers/configExists/configExists.ts","utils/helpers/configExists/index.ts","utils/helpers/date/date.ts","utils/helpers/date/formatDistance.ts","utils/helpers/debounce/debounce.ts","utils/helpers/debounce/index.ts","utils/helpers/eventBus/eventBus.ts","utils/helpers/eventBus/index.ts","utils/helpers/generateUniqueId/generateUniqueId.ts","utils/helpers/generateUniqueId/index.ts","utils/helpers/getAssetTypeName/getAssetTypeName.ts","utils/helpers/getAssetTypeName/index.ts","utils/helpers/getJupyterURL/getJupyterURL.ts","utils/helpers/getJupyterURL/index.ts","store/HistoryStack/arePathnamesInSameLevel/arePathnamesInSameLevel.ts","store/HistoryStack/arePathnamesInSameLevel/index.ts","utils/helpers/history/history.ts","utils/helpers/history/index.ts","utils/helpers/cache/getArrayInfoFromCache/getArrayInfoFromCache.ts","utils/helpers/cache/getArrayInfoFromCache/index.ts","utils/helpers/cache/getGroupInfoFromCache/getGroupInfoFromCache.ts","utils/helpers/cache/getGroupInfoFromCache/index.ts","utils/helpers/cache/getTaskGraphLogFromCache/getTaskGraphLogFromCache.ts","utils/helpers/cache/getTaskGraphLogFromCache/index.ts","utils/helpers/cache/getArrayTaskFromCache/getArrayTaskFromCache.ts","utils/helpers/cache/getArrayTaskFromCache/index.ts","utils/helpers/polling/polling.ts","utils/helpers/polling/index.ts","store/HistoryStack/stripSearchParamsFromPathName/stripSearchParamsFromPathName.ts","store/HistoryStack/stripSearchParamsFromPathName/index.ts","store/HistoryStack/getAssetTitleForBrowsers/getAssetTitleForBrowsers.ts","store/HistoryStack/getAssetTitleForBrowsers/index.ts","store/HistoryStack/getTitleBasedOnPathname/getTitleBasedOnPathname.ts","store/HistoryStack/getTitleBasedOnPathname/index.ts","store/HistoryStack/isPathnameRoot/isPathnameRoot.ts","store/HistoryStack/isPathnameRoot/index.ts","store/HistoryStack/HistoryItem/HistoryItem.ts","store/HistoryStack/HistoryItem/index.ts","utils/helpers/history/pushPathnameToToHistoryStack/index.ts","utils/helpers/history/pushPathnameToToHistoryStack/pushPathnameToToHistoryStack.ts","utils/helpers/isAxiosError/isAxiosError.ts","utils/helpers/isAxiosError/index.ts","utils/helpers/isEnterpriseEnv/isEnterpriseEnv.ts","utils/helpers/isEnterpriseEnv/index.ts","utils/helpers/isObject/isObject.ts","utils/helpers/isObject/index.ts","utils/helpers/isStorageSupported/isStorageSupported.ts","utils/helpers/isStorageSupported/index.ts","utils/helpers/lazyLoadComponent/lazyLoadComponent.ts","utils/helpers/lazyLoadComponent/index.ts","utils/helpers/logoutJupyterHandler/logoutJupyterHandler.ts","utils/helpers/logoutJupyterHandler/index.ts","utils/helpers/logoutHandler/index.ts","utils/helpers/logoutHandler/logoutHandler.ts","utils/helpers/normalizeOrganizationRole/normalizeOrganizationRole.ts","utils/helpers/normalizeOrganizationRole/index.ts","utils/helpers/number/formatNumber/formatNumber.ts","utils/helpers/number/formatNumber/index.ts","utils/helpers/number/divideBy/divideBy.ts","utils/helpers/number/divideBy/index.ts","utils/helpers/number/roundToNDecimals/index.ts","utils/helpers/number/roundToNDecimals/roundToNDecimals.ts","utils/helpers/number/calculateNotebookCost/calculateNotebookCost.ts","utils/helpers/number/isNumber/isNumber.ts","utils/helpers/number/isNumber/index.ts","utils/helpers/prependBasePath/prependBasePath.ts","utils/helpers/prependBasePath/index.ts","../node_modules/@tanstack/query-core/src/query.ts","../node_modules/@tanstack/query-core/src/queryCache.ts","../node_modules/@tanstack/query-core/src/mutationCache.ts","utils/helpers/queryClient/queryClient.ts","utils/helpers/queryClient/index.ts","../node_modules/@tanstack/query-core/src/queryClient.ts","utils/helpers/replacePathParams/replacePathParams.ts","utils/helpers/replacePathParams/index.ts","utils/helpers/string/capitalizeFirstLetter/capitalizeFirstLetter.ts","utils/helpers/string/capitalizeFirstLetter/index.ts","utils/helpers/string/isString/isString.ts","utils/helpers/string/isString/index.ts","utils/helpers/string/pluralize/pluralize.ts","utils/helpers/string/pluralize/index.ts","utils/helpers/toggleMainSidebar/toggleMainSidebar.ts","utils/helpers/toggleMainSidebar/index.ts","utils/links/academyLinks/academyLinks.ts","utils/links/academyLinks/index.ts","utils/links/appsLinks/appsLinks.ts","utils/links/arrayLinks/arrayLinks.ts","utils/links/arrayLinks/index.ts","utils/links/assetsLinks/assetsLinks.ts","utils/links/assetsLinks/index.ts","utils/links/authLinks/authLinks.ts","utils/links/authLinks/index.ts","utils/links/biomedicalImagingLinks/biomedicalImagingLinks.ts","utils/links/biomedicalImagingLinks/index.ts","utils/links/fileLinks/fileLinks.ts","utils/links/fileLinks/index.ts","utils/links/geometryLinks/geometryLinks.ts","utils/links/geometryLinks/index.ts","utils/links/groupLinks/groupLinks.ts","utils/links/groupLinks/index.ts","utils/links/externalLinks/externalLinks.ts","utils/links/externalLinks/index.ts","utils/links/emails/index.ts","utils/links/emails/emails.ts","utils/links/settingsLinks/settingsLinks.ts","utils/links/settingsLinks/index.ts","utils/links/oauth2Links/oauth2Links.ts","utils/links/oauth2Links/index.ts","utils/links/rootPath/index.ts","utils/links/rootPath/rootPath.ts","utils/links/overviewLinks/index.ts","utils/links/overviewLinks/overviewLinks.ts","utils/links/mlModelLinks/index.ts","utils/links/mlModelLinks/mlModelLinks.ts","utils/links/dashboardLinks/index.ts","utils/links/dashboardLinks/dashboardLinks.ts","utils/links/activityLinks/index.ts","utils/links/activityLinks/activityLinks.ts","utils/links/taskgraphLogsLinks/taskgraphLogsLinks.ts","utils/links/taskgraphLogsLinks/index.ts","utils/links/appsLinks/index.ts","utils/links/invitationLinks/invitationLinks.ts","utils/links/invitationLinks/index.ts","utils/links/marketplaceLinks/marketplaceLinks.ts","utils/links/marketplaceLinks/index.ts","utils/links/monitorLinks/monitorLinks.ts","utils/links/monitorLinks/index.ts","utils/links/notebookLinks/notebookLinks.ts","utils/links/notebookLinks/index.ts","utils/links/pointCloudLinks/pointCloudLinks.ts","utils/links/pointCloudLinks/index.ts","utils/links/rasterLinks/rasterLinks.ts","utils/links/rasterLinks/index.ts","utils/links/somaLinks/somaLinks.ts","utils/links/somaLinks/index.ts","utils/links/taskgraphLinks/taskgraphLinks.ts","utils/links/taskgraphLinks/index.ts","utils/links/udfLinks/udfLinks.ts","utils/links/udfLinks/index.ts","utils/links/vcfLinks/vcfLinks.ts","utils/links/vcfLinks/index.ts","utils/links/vectorSearchLinks/vectorSearchLinks.ts","utils/links/vectorSearchLinks/index.ts","utils/routerPaths/academyRouterPaths/academyRouterPaths.ts","utils/routerPaths/academyRouterPaths/index.ts","utils/routerPaths/appsRouterPaths/appsRouterPaths.ts","utils/routerPaths/appsRouterPaths/index.ts","utils/routerPaths/assetsRouterPaths/assetsRouterPaths.ts","utils/routerPaths/assetsRouterPaths/index.ts","utils/routerPaths/biomedicalImagingRouterPaths/biomedicalImagingRouterPaths.ts","utils/routerPaths/biomedicalImagingRouterPaths/index.ts","utils/routerPaths/geometryRouterPaths/geometryRouterPaths.ts","utils/routerPaths/geometryRouterPaths/index.ts","utils/routerPaths/groupRouterPaths/groupRouterPaths.ts","utils/routerPaths/groupRouterPaths/index.ts","utils/routerPaths/arrayRouterPaths/arrayRouterPaths.ts","utils/routerPaths/arrayRouterPaths/index.ts","utils/routerPaths/notebookRouterPaths/index.ts","utils/routerPaths/notebookRouterPaths/notebookRouterPaths.ts","utils/routerPaths/udfRouterPaths/index.ts","utils/routerPaths/udfRouterPaths/udfRouterPaths.ts","utils/routerPaths/settingsRouterPaths/index.ts","utils/routerPaths/settingsRouterPaths/settingsRouterPaths.ts","utils/routerPaths/authRouterPaths/index.ts","utils/routerPaths/authRouterPaths/authRouterPaths.ts","utils/routerPaths/oauth2RouterPaths/index.ts","utils/routerPaths/oauth2RouterPaths/oauth2RouterPaths.ts","utils/routerPaths/invitationRouterPaths/index.ts","utils/routerPaths/invitationRouterPaths/invitationRouterPaths.ts","utils/routerPaths/overviewRouterPaths/index.ts","utils/routerPaths/overviewRouterPaths/overviewRouterPaths.ts","utils/routerPaths/callbackRouterPaths/index.ts","utils/routerPaths/callbackRouterPaths/callbackRouterPaths.ts","utils/routerPaths/dashboardRouterPaths/dashboardRouterPaths.ts","utils/routerPaths/dashboardRouterPaths/index.ts","utils/routerPaths/fileRouterPaths/index.ts","utils/routerPaths/fileRouterPaths/fileRouterPaths.ts","utils/routerPaths/activityRouterPaths/activityRouterPaths.ts","utils/routerPaths/activityRouterPaths/index.ts","utils/routerPaths/taskgraphLogsRouterPaths/taskgraphLogsRouterPaths.ts","utils/routerPaths/taskgraphLogsRouterPaths/index.ts","utils/routerPaths/marketplaceRouterPaths/marketplaceRouterPaths.ts","utils/routerPaths/marketplaceRouterPaths/index.ts","utils/routerPaths/mlModelRouterPaths/mlModelRouterPaths.ts","utils/routerPaths/mlModelRouterPaths/index.ts","utils/routerPaths/monitorRouterPaths/monitorRouterPaths.ts","utils/routerPaths/monitorRouterPaths/index.ts","utils/routerPaths/pointCloudRouterPaths/pointCloudRouterPaths.ts","utils/routerPaths/pointCloudRouterPaths/index.ts","utils/routerPaths/rasterRouterPaths/rasterRouterPaths.ts","utils/routerPaths/rasterRouterPaths/index.ts","utils/routerPaths/somaRouterPaths/somaRouterPaths.ts","utils/routerPaths/somaRouterPaths/index.ts","utils/routerPaths/taskGraphRouterPaths/taskGraphRouterPaths.ts","utils/routerPaths/taskGraphRouterPaths/index.ts","utils/routerPaths/tasksRouterPaths/tasksRouterPaths.ts","utils/routerPaths/tasksRouterPaths/index.ts","utils/routerPaths/vcfRouterPaths/vcfRouterPaths.ts","utils/routerPaths/vcfRouterPaths/index.ts","utils/routerPaths/vectorSearchRouterPaths/vectorSearchRouterPaths.ts","utils/routerPaths/vectorSearchRouterPaths/index.ts","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/@sentry/src/integrations/inboundfilters.ts","../node_modules/@sentry/src/integrations/functiontostring.ts","../node_modules/@sentry/src/integration.ts","../node_modules/@sentry/src/error.ts","../node_modules/@sentry/src/dsn.ts","../node_modules/@sentry/src/api.ts","../node_modules/@sentry/src/stacktrace.ts","../node_modules/@sentry/src/supports.ts","../node_modules/@sentry/src/instrument.ts","../node_modules/@sentry/src/normalize.ts","../node_modules/@sentry/src/memo.ts","../node_modules/@sentry/src/envelope.ts","../node_modules/@sentry/src/utils/prepareEvent.ts","../node_modules/@sentry/src/baseclient.ts","../node_modules/src/eventbuilder.ts","../node_modules/src/helpers.ts","../node_modules/@sentry/src/severity.ts","../node_modules/@sentry/src/url.ts","../node_modules/src/integrations/breadcrumbs.ts","../node_modules/src/client.ts","../node_modules/@sentry/src/clientreport.ts","../node_modules/src/stack-parsers.ts","../node_modules/src/integrations/trycatch.ts","../node_modules/src/integrations/globalhandlers.ts","../node_modules/src/integrations/linkederrors.ts","../node_modules/src/integrations/dedupe.ts","../node_modules/src/integrations/httpcontext.ts","../node_modules/@sentry/src/promisebuffer.ts","../node_modules/@sentry/src/ratelimit.ts","../node_modules/@sentry/src/transports/base.ts","../node_modules/src/transports/utils.ts","../node_modules/src/transports/fetch.ts","../node_modules/src/transports/xhr.ts","../node_modules/src/sdk.ts","../node_modules/@sentry/src/sdk.ts","../node_modules/@sentry/src/exports.ts","../node_modules/@sentry/src/hub.ts","../node_modules/@sentry/src/scope.ts","../node_modules/@sentry/src/session.ts","../node_modules/@sentry/src/version.ts","../node_modules/@sentry/src/browser.ts","../node_modules/@sentry/src/is.ts","../node_modules/@sentry/src/logger.ts","../node_modules/@sentry/src/misc.ts","../node_modules/@sentry/src/node.ts","../node_modules/@sentry/src/env.ts","../node_modules/@sentry/src/object.ts","../node_modules/@sentry/src/string.ts","../node_modules/@sentry/src/syncpromise.ts","../node_modules/@sentry/src/time.ts","../node_modules/@sentry/src/worldwide.ts","../node_modules/classnames/index.js","../node_modules/debounce/index.js","../node_modules/decode-uri-component/index.js","../node_modules/exenv/index.js","../node_modules/filter-obj/index.js","../node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/toPath.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/formik/src/utils.ts","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Field.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/luxon/src/errors.js","../node_modules/luxon/src/impl/formats.js","../node_modules/luxon/src/impl/util.js","../node_modules/luxon/src/impl/english.js","../node_modules/luxon/src/impl/formatter.js","../node_modules/luxon/src/impl/invalid.js","../node_modules/luxon/src/zone.js","../node_modules/luxon/src/zones/localZone.js","../node_modules/luxon/src/zones/IANAZone.js","../node_modules/luxon/src/zones/fixedOffsetZone.js","../node_modules/luxon/src/zones/invalidZone.js","../node_modules/luxon/src/impl/zoneUtil.js","../node_modules/luxon/src/settings.js","../node_modules/luxon/src/impl/locale.js","../node_modules/luxon/src/impl/regexParser.js","../node_modules/luxon/src/duration.js","../node_modules/luxon/src/interval.js","../node_modules/luxon/src/info.js","../node_modules/luxon/src/impl/diff.js","../node_modules/luxon/src/impl/digits.js","../node_modules/luxon/src/impl/tokenParser.js","../node_modules/luxon/src/impl/conversions.js","../node_modules/luxon/src/datetime.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/punycode/punycode.js","../node_modules/query-string/index.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-floater/node_modules/deepmerge/dist/cjs.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-joyride/node_modules/deepmerge/dist/cjs.js","../node_modules/react-node-to-string/build/index.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/react-popper/node_modules/react-fast-compare/index.js","../node_modules/react-proptype-conditional-require/isRequiredIf.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/Prompt.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/withRouter.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react-use-measure/dist/web.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/scroll/index.js","../node_modules/scrollparent/scrollparent.js","../node_modules/split-on-first/index.js","../node_modules/strict-uri-encode/index.js","../node_modules/url/url.js","../node_modules/url/util.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@tanstack/query-core/src/focusManager.ts","../node_modules/@tanstack/query-core/src/infiniteQueryBehavior.ts","../node_modules/@tanstack/query-core/src/logger.ts","../node_modules/@tanstack/query-core/src/mutation.ts","../node_modules/@tanstack/query-core/src/notifyManager.ts","../node_modules/@tanstack/query-core/src/onlineManager.ts","../node_modules/@tanstack/query-core/src/queryObserver.ts","../node_modules/@tanstack/query-core/src/removable.ts","../node_modules/@tanstack/query-core/src/retryer.ts","../node_modules/@tanstack/query-core/src/subscribable.ts","../node_modules/@tanstack/query-core/src/utils.ts","../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx","../node_modules/@tanstack/react-query/src/QueryErrorResetBoundary.tsx","../node_modules/@tanstack/react-query/src/isRestoring.tsx","../node_modules/@tanstack/react-query/src/errorBoundaryUtils.ts","../node_modules/@tanstack/react-query/src/suspense.ts","../node_modules/@tanstack/react-query/src/useBaseQuery.ts","../node_modules/@tanstack/query-core/src/infiniteQueryObserver.ts","../node_modules/@tanstack/react-query/src/useInfiniteQuery.ts","../node_modules/@tanstack/query-core/src/mutationObserver.ts","../node_modules/@tanstack/react-query/src/useMutation.ts","../node_modules/@tanstack/react-query/src/useQuery.ts","../node_modules/@tanstack/react-query/src/useSyncExternalStore.ts","../node_modules/@tanstack/react-query/src/utils.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/utils/mix.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix-color.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/utils/mix-complex.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/create-accelerated-animation.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","../node_modules/framer-motion/dist/es/animation/animators/instant.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/ramda/es/addIndex.js","../node_modules/ramda/es/append.js","../node_modules/ramda/es/assoc.js","../node_modules/ramda/es/assocPath.js","../node_modules/ramda/es/internal/_flatCat.js","../node_modules/ramda/es/internal/_xchain.js","../node_modules/ramda/es/chain.js","../node_modules/ramda/es/compose.js","../node_modules/ramda/es/max.js","../node_modules/ramda/es/converge.js","../node_modules/ramda/es/curry.js","../node_modules/ramda/es/internal/_curryN.js","../node_modules/ramda/es/curryN.js","../node_modules/ramda/es/defaultTo.js","../node_modules/ramda/es/dissoc.js","../node_modules/ramda/es/dissocPath.js","../node_modules/ramda/es/internal/_dissoc.js","../node_modules/ramda/es/divide.js","../node_modules/ramda/es/empty.js","../node_modules/ramda/es/internal/_equals.js","../node_modules/ramda/es/equals.js","../node_modules/ramda/es/internal/_xfilter.js","../node_modules/ramda/es/filter.js","../node_modules/ramda/es/internal/_filter.js","../node_modules/ramda/es/internal/_xfind.js","../node_modules/ramda/es/find.js","../node_modules/ramda/es/internal/_xfindLast.js","../node_modules/ramda/es/findLast.js","../node_modules/ramda/es/flatten.js","../node_modules/ramda/es/flip.js","../node_modules/ramda/es/hasPath.js","../node_modules/ramda/es/head.js","../node_modules/ramda/es/identity.js","../node_modules/ramda/es/includes.js","../node_modules/ramda/es/insert.js","../node_modules/ramda/es/internal/_Set.js","../node_modules/ramda/es/internal/_arity.js","../node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/ramda/es/internal/_assoc.js","../node_modules/ramda/es/internal/_checkForMethod.js","../node_modules/ramda/es/internal/_concat.js","../node_modules/ramda/es/internal/_curry1.js","../node_modules/ramda/es/internal/_curry2.js","../node_modules/ramda/es/internal/_curry3.js","../node_modules/ramda/es/internal/_dispatchable.js","../node_modules/ramda/es/internal/_isTransformer.js","../node_modules/ramda/es/internal/_forceReduced.js","../node_modules/ramda/es/internal/_functionName.js","../node_modules/ramda/es/internal/_has.js","../node_modules/ramda/es/internal/_identity.js","../node_modules/ramda/es/internal/_includes.js","../node_modules/ramda/es/internal/_includesWith.js","../node_modules/ramda/es/internal/_indexOf.js","../node_modules/ramda/es/internal/_isArguments.js","../node_modules/ramda/es/internal/_isArray.js","../node_modules/ramda/es/internal/_isArrayLike.js","../node_modules/ramda/es/internal/_isInteger.js","../node_modules/ramda/es/internal/_isObject.js","../node_modules/ramda/es/internal/_isPlaceholder.js","../node_modules/ramda/es/internal/_isString.js","../node_modules/ramda/es/internal/_isTypedArray.js","../node_modules/ramda/es/internal/_makeFlat.js","../node_modules/ramda/es/internal/_map.js","../node_modules/ramda/es/internal/_objectAssign.js","../node_modules/ramda/es/internal/_objectIs.js","../node_modules/ramda/es/internal/_pipe.js","../node_modules/ramda/es/internal/_xwrap.js","../node_modules/ramda/es/bind.js","../node_modules/ramda/es/internal/_reduce.js","../node_modules/ramda/es/internal/_reduced.js","../node_modules/ramda/es/internal/_toISOString.js","../node_modules/ramda/es/internal/_xfBase.js","../node_modules/ramda/es/objOf.js","../node_modules/ramda/es/internal/_stepCat.js","../node_modules/ramda/es/isEmpty.js","../node_modules/ramda/es/isNil.js","../node_modules/ramda/es/juxt.js","../node_modules/ramda/es/keys.js","../node_modules/ramda/es/last.js","../node_modules/ramda/es/internal/_xmap.js","../node_modules/ramda/es/map.js","../node_modules/ramda/es/memoizeWith.js","../node_modules/ramda/es/mergeRight.js","../node_modules/ramda/es/nth.js","../node_modules/ramda/es/partition.js","../node_modules/ramda/es/pipe.js","../node_modules/ramda/es/pluck.js","../node_modules/ramda/es/prepend.js","../node_modules/ramda/es/pickAll.js","../node_modules/ramda/es/project.js","../node_modules/ramda/es/prop.js","../node_modules/ramda/es/propEq.js","../node_modules/ramda/es/internal/_isNumber.js","../node_modules/ramda/es/range.js","../node_modules/ramda/es/reduce.js","../node_modules/ramda/es/reject.js","../node_modules/ramda/es/internal/_complement.js","../node_modules/ramda/es/remove.js","../node_modules/ramda/es/replace.js","../node_modules/ramda/es/reverse.js","../node_modules/ramda/es/slice.js","../node_modules/ramda/es/tail.js","../node_modules/ramda/es/toPairs.js","../node_modules/ramda/es/trim.js","../node_modules/ramda/es/type.js","../node_modules/ramda/es/uniq.js","../node_modules/ramda/es/internal/_xuniqBy.js","../node_modules/ramda/es/uniqBy.js","../node_modules/ramda/es/without.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/zustand/esm/index.mjs","../node_modules/zustand/esm/middleware.mjs","../node_modules/zustand/esm/shallow.mjs","../node_modules/zustand/esm/traditional.mjs","../node_modules/zustand/esm/vanilla.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/harmony module decorator","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","polyfills/entries.ts","polyfills/BroadcastChannel.ts","polyfills/findLastIndex.ts","components/Cookies/setupAnalytics.js","components/Cookies/Cookies.tsx","components/Cookies/index.ts","pages/Auth/Auth.tsx","pages/Auth/index.ts","../node_modules/@react-hook/latest/dist/module/index.js","../node_modules/@react-hook/throttle/dist/module/index.js","../node_modules/@react-hook/event/dist/module/index.js","../node_modules/@react-hook/window-scroll/dist/module/index.js","components/Svg/icons/IconBurger.tsx","components/AuthRender/AuthRender.tsx","components/AuthRender/index.ts","components/Svg/icons/IconBellFilled.tsx","hooks/api/Notifications/useGetNotificationCount/useGetNotificationCount.ts","hooks/api/Notifications/useGetNotificationCount/index.ts","hooks/api/Notifications/useGetNotifications/useGetNotifications.ts","store/InboxStore/InboxStore.ts","store/InboxStore/index.ts","hooks/api/Notifications/useMarkAllNotificationsAsRead/useMarkAllNotificationsAsRead.ts","hooks/api/Notifications/useMarkAllNotificationsAsRead/index.ts","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationDescription/getDescriptionForInvitation.tsx","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationDescription/getDescriptionForTaskgraph.tsx","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationDescription/index.ts","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationDescription/getNotificationDescription.tsx","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationIcon/getNotificationIcon.tsx","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationIcon/index.ts","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationLink/getNotificationLink.ts","components/Header/components/inbox/InboxContent/NotificationItem/getNotificationLink/index.ts","hooks/api/Notifications/useChangeNotificationStatus/useChangeNotificationStatus.ts","hooks/api/Notifications/useChangeNotificationStatus/index.ts","components/Svg/icons/IconNotification.tsx","hooks/api/Notifications/useDeleteNotifications/useDeleteNotifications.ts","hooks/api/Notifications/useDeleteNotifications/index.ts","components/Header/components/inbox/InboxContent/NotificationItem/NotificationItem.tsx","components/Header/components/inbox/InboxContent/NotificationItem/index.ts","components/Svg/icons/IconBellFilledSnoozed.tsx","components/Header/components/inbox/InboxContent/InboxContent.tsx","components/Header/components/inbox/InboxContent/index.ts","components/Header/components/inbox/InboxButton/index.ts","components/Header/components/inbox/InboxButton/InboxButton.tsx","webpack://ui/./src/components/Header/Header.module.scss?d479","webpack://ui/./src/components/v2/Breadcrumb/Breadcrumb.module.scss?eadc","webpack://ui/./src/components/v2/Breadcrumb/BreadcrumbItemTitle/BreadcrumbItemTitle.module.scss?740d","hooks/useAsync/index.ts","hooks/useAsync/useAsync.ts","components/v2/Breadcrumb/BreadcrumbItemTitle/BreadcrumbItemTitle.tsx","components/v2/Breadcrumb/BreadcrumbItemTitle/index.ts","webpack://ui/./src/components/v2/Breadcrumb/BreadcrumbItem/BreadcrumbItem.module.scss?ad00","components/v2/Breadcrumb/BreadcrumbItem/index.ts","components/v2/Breadcrumb/BreadcrumbItem/BreadcrumbItem.tsx","webpack://ui/./src/components/v2/Breadcrumb/BreadcrumbHiddenContent/BreadcrumbHiddenContent.module.scss?4b3c","components/v2/Breadcrumb/BreadcrumbHiddenContent/BreadcrumbHiddenContent.tsx","components/v2/Breadcrumb/BreadcrumbHiddenContent/index.ts","components/v2/Breadcrumb/BreadcrumbTitle/BreadcrumbTitle.tsx","components/v2/Breadcrumb/BreadcrumbTitle/index.ts","components/v2/Breadcrumb/Breadcrumb.tsx","components/v2/Breadcrumb/index.ts","components/Header/index.ts","components/Header/Header.tsx","hooks/useAuthValue/index.ts","hooks/useAuthValue/useAuthValue.ts","hooks/api/Organizations/useGetOrganizations/useGetOrganizations.ts","hooks/api/Organizations/useGetOrganizations/index.ts","utils/helpers/toggleWorkspaceMenu/toggleWorkspaceMenu.ts","utils/helpers/toggleWorkspaceMenu/index.ts","components/Svg/icons/IconLogout.tsx","components/WorkspaceMenu/WorkspaceItem/WorkspaceItem.tsx","components/WorkspaceMenu/WorkspaceItem/index.ts","components/WorkspaceMenu/WorkspaceOption/index.ts","components/WorkspaceMenu/WorkspaceOption/WorkspaceOption.tsx","components/Svg/icons/IconTheme.tsx","components/WorkspaceMenu/WorkspaceThemeSelector/WorkspaceThemeSelector.tsx","components/WorkspaceMenu/WorkspaceThemeSelector/index.ts","components/WorkspaceMenu/WorkspaceMenu.tsx","components/WorkspaceMenu/index.ts","hooks/useNetwork/useNetwork.ts","hooks/useNetwork/index.ts","utils/helpers/inIframe/inIframe.ts","utils/helpers/inIframe/index.ts","hooks/useDocumentVisibility/index.ts","hooks/useDocumentVisibility/useDocumentVisibility.ts","containers/JupyterContainer/HiddenJupyterIframe/useShouldRenderHiddenIframe/index.ts","containers/JupyterContainer/HiddenJupyterIframe/useShouldRenderHiddenIframe/useShouldRenderHiddenIframe.ts","hooks/jupyter/useAutoLaunch/useAutoLaunch.ts","hooks/jupyter/useAutoLaunch/index.ts","containers/JupyterContainer/HiddenJupyterIframe/useListenForQueuedTasksAndHandle/useListenForQueuedTasksAndHandle.ts","containers/JupyterContainer/HiddenJupyterIframe/useListenForQueuedTasksAndHandle/index.ts","containers/JupyterContainer/HiddenJupyterIframe/index.ts","containers/JupyterContainer/HiddenJupyterIframe/HiddenJupyterIframe.tsx","utils/helpers/errorHasStatusCode/errorHasStatusCode.ts","utils/helpers/errorHasStatusCode/index.ts","hooks/jupyter/usePollingNotebookStatus/index.ts","hooks/jupyter/usePollingNotebookStatus/usePollingNotebookStatus.ts","containers/JupyterContainer/index.ts","containers/JupyterContainer/JupyterContainer.tsx","utils/helpers/isJupyterDisabled/index.ts","utils/helpers/isJupyterDisabled/isJupyterDisabled.ts","webpack://ui/./src/components/MainMenu/MainMenuButton/Indicator/Indicator.module.scss?2352","components/MainMenu/MainMenuButton/Indicator/index.ts","components/MainMenu/MainMenuButton/Indicator/Indicator.tsx","components/MainMenu/MainMenuButton/index.ts","components/MainMenu/MainMenuButton/MainMenuButton.tsx","components/Svg/icons/IconHome.tsx","components/MainMenu/NamespaceSelector/NamespaceSelector.tsx","components/MainMenu/NamespaceSelector/index.ts","webpack://ui/./src/components/MainMenu/HelpDialog/HelpDialog.module.scss?67fc","components/Svg/icons/IconChat.tsx","components/Svg/icons/IconSecureShield.tsx","components/MainMenu/HelpDialog/HelpDialog.tsx","components/MainMenu/HelpDialog/index.ts","components/MainMenu/MainMenu.tsx","components/MainMenu/index.ts","pages/Console/MainContent/MainContent.tsx","pages/Console/MainContent/index.ts","components/Onboarding/UserOnboarding/GetStarted/GetStarted.tsx","components/Onboarding/UserOnboarding/GetStarted/index.ts","components/Onboarding/UserOnboarding/BasicTour/BasicTour.tsx","components/Onboarding/UserOnboarding/BasicTour/index.ts","components/Onboarding/UserOnboarding/index.ts","components/Onboarding/UserOnboarding/UserOnboarding.tsx","components/Onboarding/OrganizationOnboarding/BasicTour/BasicTour.tsx","components/Onboarding/OrganizationOnboarding/BasicTour/index.ts","components/Onboarding/OrganizationOnboarding/index.ts","components/Onboarding/OrganizationOnboarding/OrganizationOnboarding.tsx","hooks/api/Onboarding/useDeleteOnboardingItems/index.ts","hooks/api/Onboarding/useDeleteOnboardingItems/useDeleteOnboardingItems.ts","components/Onboarding/index.ts","components/Onboarding/Onboarding.tsx","webpack://ui/./src/pages/Console/usePendingNotification/styles.module.scss?fe92","hooks/api/User/useGetUserMeta/index.ts","hooks/api/User/useGetUserMeta/useGetUserMeta.ts","hooks/api/User/useUpdateUserMeta/index.ts","hooks/api/User/useUpdateUserMeta/useUpdateUserMeta.ts","pages/Console/usePendingNotification/index.ts","pages/Console/usePendingNotification/usePendingNotification.tsx","pages/Console/Console.tsx","pages/Console/index.ts","pages/OAuth2/OAuth2.tsx","pages/OAuth2/index.ts","pages/Callbacks/Callbacks.tsx","pages/Callbacks/index.ts","pages/Auth/Logout/Logout.tsx","pages/Auth/Logout/index.ts","pages/Routes.tsx","components/Snackbar/Snackbar.tsx","components/Snackbar/index.ts","containers/SnackbarContainer/index.ts","containers/SnackbarContainer/SnackbarContainer.tsx","App.tsx","serviceWorker.js","utils/setup/axios.ts","utils/setup/env.ts","utils/setup/sentry.ts","utils/setup/resetChunkReloadState.ts","index.tsx","utils/setup/globalVariables.ts"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport ErrorBoundary from 'components/ErrorBoundary/ErrorBoundary';\n\nfunction withErrorBoundary<P extends {}>(ChildComponent: React.FC<P>) {\n return class WithErrorBoundary extends PureComponent<P> {\n render(): JSX.Element {\n return (\n <ErrorBoundary>\n <ChildComponent {...this.props} />\n </ErrorBoundary>\n );\n }\n };\n}\n\nexport default withErrorBoundary;\n","import withErrorBoundary from './withErrorBoundary';\n\nexport default withErrorBoundary;\n","/* eslint-disable */\n// tslint:disable\n/**\n * TileDB UI REST API\n * TileDB UI\n *\n * The version of the OpenAPI document: 1.1.3\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as globalImportUrl from 'url';\nimport axios, { AxiosPromise, AxiosInstance, AxiosResponse } from 'axios';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, RequiredError } from './base';\n\n/**\n * Credential information to access Amazon Web Services\n * @export\n * @interface AWSCredential\n */\nexport interface AWSCredential {\n /**\n * The ID of the access key\n * @type {string}\n * @memberof AWSCredential\n */\n access_key_id?: string;\n /**\n * The access key\\'s secret. Never returned in responses.\n * @type {string}\n * @memberof AWSCredential\n */\n secret_access_key?: string;\n /**\n * The endpoint used for this credential\n * @type {string}\n * @memberof AWSCredential\n */\n endpoint?: string | null;\n}\n/**\n * Role information to access Amazon Web Services\n * @export\n * @interface AWSRole\n */\nexport interface AWSRole {\n /**\n * The role arn used to access\n * @type {string}\n * @memberof AWSRole\n */\n role_arn?: string;\n /**\n * The role external id used to access\n * @type {string}\n * @memberof AWSRole\n */\n external_id?: string;\n /**\n * The endpoint used for this role\n * @type {string}\n * @memberof AWSRole\n */\n endpoint?: string | null;\n}\n/**\n * user\\'s academy lessons\n * @export\n * @interface AcademyLesson\n */\nexport interface AcademyLesson {\n /**\n * Unique ID of the lesson\n * @type {string}\n * @memberof AcademyLesson\n */\n lesson_id?: string;\n /**\n * Version of the lesson\n * @type {string}\n * @memberof AcademyLesson\n */\n lesson_version?: string;\n /**\n * Indicates if lesson is completed\n * @type {boolean}\n * @memberof AcademyLesson\n */\n completed?: boolean | null;\n /**\n * Indicates if lesson is pinned\n * @type {boolean}\n * @memberof AcademyLesson\n */\n pinned?: boolean | null;\n}\n/**\n * user\\'s academy questionnaire\n * @export\n * @interface AcademyQuestionnaireListResponse\n */\nexport interface AcademyQuestionnaireListResponse {\n /**\n * Unique ID of the questionnaire\n * @type {string}\n * @memberof AcademyQuestionnaireListResponse\n */\n questionnaire_id?: string;\n /**\n * Version of the questionnaire\n * @type {string}\n * @memberof AcademyQuestionnaireListResponse\n */\n questionnaire_version?: string;\n /**\n * Indicates if questionnaire is completed\n * @type {boolean}\n * @memberof AcademyQuestionnaireListResponse\n */\n completed?: boolean;\n /**\n * Array of user answers\n * @type {Array<UserAnswer>}\n * @memberof AcademyQuestionnaireListResponse\n */\n user_answers?: Array<UserAnswer>;\n}\n/**\n * user\\'s academy questionnaire\n * @export\n * @interface AcademyQuestionnairePutRequest\n */\nexport interface AcademyQuestionnairePutRequest {\n /**\n * Unique ID of the questionnaire\n * @type {string}\n * @memberof AcademyQuestionnairePutRequest\n */\n questionnaire_id?: string;\n /**\n * Version of the questionnaire\n * @type {string}\n * @memberof AcademyQuestionnairePutRequest\n */\n questionnaire_version?: string;\n /**\n * Indicates if questionnaire is completed\n * @type {boolean}\n * @memberof AcademyQuestionnairePutRequest\n */\n completed?: boolean;\n /**\n * Array of user answers\n * @type {Array<UserAnswer>}\n * @memberof AcademyQuestionnairePutRequest\n */\n user_answers?: Array<UserAnswer>;\n}\n/**\n * A union type which may contain a credential to access any one cloud provider.\n * @export\n * @interface AccessCredential\n */\nexport interface AccessCredential {\n /**\n * The unique UUID of the credential\n * @type {string}\n * @memberof AccessCredential\n */\n uuid: string;\n /**\n * A user-specified name for the key\n * @type {string}\n * @memberof AccessCredential\n */\n name: string;\n /**\n * \n * @type {CloudProvider}\n * @memberof AccessCredential\n */\n provider: CloudProvider;\n /**\n * True if this is the namespace\\'s default credential to be used when connecting to the given cloud provider. There can be at most one default for each unique provider.\n * @type {boolean}\n * @memberof AccessCredential\n */\n provider_default?: boolean;\n /**\n * Time when the credential was created (rfc3339)\n * @type {string}\n * @memberof AccessCredential\n */\n created_at: string;\n /**\n * Time when the credential was last updated (rfc3339)\n * @type {string}\n * @memberof AccessCredential\n */\n updated_at: string;\n /**\n * Is this credential allowed to be used in tasks\n * @type {boolean}\n * @memberof AccessCredential\n */\n allowed_in_tasks?: boolean | null;\n /**\n * \n * @type {AccessCredentialCredential}\n * @memberof AccessCredential\n */\n credential?: AccessCredentialCredential;\n /**\n * \n * @type {AccessCredentialRole}\n * @memberof AccessCredential\n */\n role?: AccessCredentialRole;\n /**\n * \n * @type {AccessCredentialToken}\n * @memberof AccessCredential\n */\n token?: AccessCredentialToken;\n}\n/**\n * The credential information itself. Exactly one sub-field may be set. The names match those in the CloudProvider enum.\n * @export\n * @interface AccessCredentialCredential\n */\nexport interface AccessCredentialCredential {\n /**\n * \n * @type {AWSCredential}\n * @memberof AccessCredentialCredential\n */\n aws?: AWSCredential | null;\n /**\n * \n * @type {AzureCredential}\n * @memberof AccessCredentialCredential\n */\n azure?: AzureCredential | null;\n /**\n * \n * @type {GCPInteroperabilityCredential}\n * @memberof AccessCredentialCredential\n */\n gcp?: GCPInteroperabilityCredential | null;\n}\n/**\n * The role information itself. Exactly one sub-field may be set. The names match those in the CloudProvider enum.\n * @export\n * @interface AccessCredentialRole\n */\nexport interface AccessCredentialRole {\n /**\n * \n * @type {AWSRole}\n * @memberof AccessCredentialRole\n */\n aws?: AWSRole | null;\n}\n/**\n * The token information itself. Exactly one sub-field may be set. The names match those in the CloudProvider enum.\n * @export\n * @interface AccessCredentialToken\n */\nexport interface AccessCredentialToken {\n /**\n * \n * @type {AzureToken}\n * @memberof AccessCredentialToken\n */\n azure?: AzureToken | null;\n /**\n * \n * @type {GCPServiceAccountKey}\n * @memberof AccessCredentialToken\n */\n gcp?: GCPServiceAccountKey | null;\n}\n/**\n * The types of an access credential\n * @export\n * @enum {string}\n */\nexport enum AccessCredentialType {\n Key = 'key',\n Arn = 'arn',\n AzureToken = 'azure_token',\n GcpToken = 'gcp_token'\n}\n\n/**\n * A union type which may contain a credential to access any one cloud provider.\n * @export\n * @interface AccessCredentialUpdate\n */\nexport interface AccessCredentialUpdate {\n /**\n * A user-specified name for the key\n * @type {string}\n * @memberof AccessCredentialUpdate\n */\n name: string;\n /**\n * True if this is the namespace\\'s default credential to be used when connecting to the given cloud provider. There can be at most one default for each unique provider.\n * @type {boolean}\n * @memberof AccessCredentialUpdate\n */\n provider_default?: boolean;\n /**\n * The credential provider\n * @type {string}\n * @memberof AccessCredentialUpdate\n */\n provider?: string;\n /**\n * Is this credential allowed to be used in tasks\n * @type {boolean}\n * @memberof AccessCredentialUpdate\n */\n allowed_in_tasks?: boolean | null;\n /**\n * \n * @type {AccessCredentialUpdateCredential}\n * @memberof AccessCredentialUpdate\n */\n credential?: AccessCredentialUpdateCredential;\n /**\n * \n * @type {AccessCredentialRole}\n * @memberof AccessCredentialUpdate\n */\n role?: AccessCredentialRole;\n /**\n * \n * @type {AccessCredentialToken}\n * @memberof AccessCredentialUpdate\n */\n token?: AccessCredentialToken;\n}\n/**\n * The credential information itself. Exactly one sub-field may be set. The names match those in the CloudProvider enum.\n * @export\n * @interface AccessCredentialUpdateCredential\n */\nexport interface AccessCredentialUpdateCredential {\n /**\n * \n * @type {AccessCredentialUpdateCredentialGcp}\n * @memberof AccessCredentialUpdateCredential\n */\n gcp?: AccessCredentialUpdateCredentialGcp;\n /**\n * \n * @type {AccessCredentialUpdateCredentialAws}\n * @memberof AccessCredentialUpdateCredential\n */\n aws?: AccessCredentialUpdateCredentialAws;\n /**\n * \n * @type {AccessCredentialUpdateCredentialAzure}\n * @memberof AccessCredentialUpdateCredential\n */\n azure?: AccessCredentialUpdateCredentialAzure;\n}\n/**\n * Credential information to access Amazon Web Services\n * @export\n * @interface AccessCredentialUpdateCredentialAws\n */\nexport interface AccessCredentialUpdateCredentialAws {\n /**\n * The ID of the access key\n * @type {string}\n * @memberof AccessCredentialUpdateCredentialAws\n */\n access_key_id?: string;\n /**\n * The access key\\'s secret. Never returned in responses.\n * @type {string}\n * @memberof AccessCredentialUpdateCredentialAws\n */\n secret_access_key?: string;\n}\n/**\n * Credential information to access Microsoft Azure. Each supported property is the snake_case version of its name in an Azure Storage connection string.\n * @export\n * @interface AccessCredentialUpdateCredentialAzure\n */\nexport interface AccessCredentialUpdateCredentialAzure {\n /**\n * The name of the Azure account to access\n * @type {string}\n * @memberof AccessCredentialUpdateCredentialAzure\n */\n account_name?: string;\n /**\n * The secret key. Never returned in responses.\n * @type {string}\n * @memberof AccessCredentialUpdateCredentialAzure\n */\n account_key?: string;\n}\n/**\n * Credential information to access Google cloud\n * @export\n * @interface AccessCredentialUpdateCredentialGcp\n */\nexport interface AccessCredentialUpdateCredentialGcp {\n /**\n * The ID of the access key\n * @type {string}\n * @memberof AccessCredentialUpdateCredentialGcp\n */\n access_key_id?: string;\n /**\n * The access key\\'s secret. Never returned in responses.\n * @type {string}\n * @memberof AccessCredentialUpdateCredentialGcp\n */\n secret_access_key?: string;\n}\n/**\n * Object including credentials and pagination metadata\n * @export\n * @interface AccessCredentialsData\n */\nexport interface AccessCredentialsData {\n /**\n * List of credentials\n * @type {Array<AccessCredential>}\n * @memberof AccessCredentialsData\n */\n credentials?: Array<AccessCredential>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof AccessCredentialsData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * account overiew to be used in overview\n * @export\n * @interface AccountOverview\n */\nexport interface AccountOverview {\n /**\n * number of arrays owned or shared by current user\n * @type {number}\n * @memberof AccountOverview\n */\n num_of_arrays?: number;\n /**\n * number of organizations current user is member of\n * @type {number}\n * @memberof AccountOverview\n */\n num_of_organizations?: number;\n /**\n * total of all invoices that are not paid\n * @type {number}\n * @memberof AccountOverview\n */\n total_balance: number;\n /**\n * \n * @type {ProductTier}\n * @memberof AccountOverview\n */\n product_tier?: ProductTier;\n /**\n * \n * @type {ApplicationStatus}\n * @memberof AccountOverview\n */\n free_tier_status?: ApplicationStatus;\n}\n/**\n * Type of activity logged\n * @export\n * @enum {string}\n */\nexport enum ActivityEventType {\n ReadSchema = 'read_schema',\n MaxBufferSizes = 'max_buffer_sizes',\n NonEmptyDomain = 'non_empty_domain',\n QueryRead = 'query_read',\n QueryWrite = 'query_write',\n Create = 'create',\n Delete = 'delete',\n Register = 'register',\n Deregister = 'deregister',\n Udf = 'udf',\n ArrayMetadataGet = 'array_metadata_get',\n ArrayMetadataUpdate = 'array_metadata_update',\n EstimatedResultSizes = 'estimated_result_sizes',\n Update = 'update',\n Info = 'info',\n Run = 'run'\n}\n\n/**\n * The status of the user\\'s free tier application.\n * @export\n * @enum {string}\n */\nexport enum ApplicationStatus {\n None = 'none',\n Applied = 'applied',\n Accepted = 'accepted',\n Rejected = 'rejected'\n}\n\n/**\n * actions a user can take on an array\n * @export\n * @enum {string}\n */\nexport enum ArrayActions {\n Read = 'read',\n Write = 'write',\n Edit = 'edit',\n ReadArrayLogs = 'read_array_logs',\n ReadArrayInfo = 'read_array_info',\n ReadArraySchema = 'read_array_schema'\n}\n\n/**\n * Actvity of an Array. Valid to display only if there is actual I/O.\n * @export\n * @interface ArrayActivityLog\n */\nexport interface ArrayActivityLog {\n /**\n * time event took place (RFC3339)\n * @type {string}\n * @memberof ArrayActivityLog\n */\n event_at: string;\n /**\n * \n * @type {ActivityEventType}\n * @memberof ArrayActivityLog\n */\n action: ActivityEventType;\n /**\n * Optional work carried out in the context of this activity\n * @type {string}\n * @memberof ArrayActivityLog\n */\n action_description: string;\n /**\n * User who performed action\n * @type {string}\n * @memberof ArrayActivityLog\n */\n username: string;\n /**\n * Bytes sent to client\n * @type {number}\n * @memberof ArrayActivityLog\n */\n bytes_sent: number;\n /**\n * Bytes received from client\n * @type {number}\n * @memberof ArrayActivityLog\n */\n bytes_received: number;\n /**\n * uuid of associated array task\n * @type {string}\n * @memberof ArrayActivityLog\n */\n array_task_id?: string;\n /**\n * id of the activity\n * @type {string}\n * @memberof ArrayActivityLog\n */\n id: string;\n /**\n * ranges for query\n * @type {string}\n * @memberof ArrayActivityLog\n */\n query_ranges?: string;\n /**\n * stats for query\n * @type {string}\n * @memberof ArrayActivityLog\n */\n query_stats?: string;\n}\n/**\n * Object including array tasks and metadata\n * @export\n * @interface ArrayActivityLogData\n */\nexport interface ArrayActivityLogData {\n /**\n * Array ArrayActivityLog\n * @type {Array<ArrayActivityLog>}\n * @memberof ArrayActivityLogData\n */\n activitylogs?: Array<ArrayActivityLog>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof ArrayActivityLogData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Object including array info and pagination metadata\n * @export\n * @interface ArrayBrowserData\n */\nexport interface ArrayBrowserData {\n /**\n * Array Info\n * @type {Array<ArrayInfo>}\n * @memberof ArrayBrowserData\n */\n arrays?: Array<ArrayInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof ArrayBrowserData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Object for ui array tasks browser page\n * @export\n * @interface ArrayBrowserSidebar\n */\nexport interface ArrayBrowserSidebar {\n /**\n * list of all unique namespaces to display\n * @type {Array<string>}\n * @memberof ArrayBrowserSidebar\n */\n namespaces?: Array<string>;\n /**\n * A count of \\\"all\\\" of category\n * @type {number}\n * @memberof ArrayBrowserSidebar\n */\n result_count_for_all?: number;\n /**\n * A map that includes the result count by namespace\n * @type {object}\n * @memberof ArrayBrowserSidebar\n */\n result_count_by_namespace?: object;\n}\n/**\n * Object including array versions (list of Unix epoch timestamps in milliseconds) and pagination metadata\n * @export\n * @interface ArrayEndTimetsampsData\n */\nexport interface ArrayEndTimetsampsData {\n /**\n * List of timestamps expressed in milliseconds since Unix epoch\n * @type {Array<number>}\n * @memberof ArrayEndTimetsampsData\n */\n end_timestamps?: Array<number>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof ArrayEndTimetsampsData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * A user-favorite array item\n * @export\n * @interface ArrayFavorite\n */\nexport interface ArrayFavorite {\n /**\n * unique UUID of the array\n * @type {string}\n * @memberof ArrayFavorite\n */\n array_uuid?: string;\n /**\n * the namespace of the array\n * @type {string}\n * @memberof ArrayFavorite\n */\n namespace?: string;\n /**\n * the name of the array\n * @type {string}\n * @memberof ArrayFavorite\n */\n name?: string;\n}\n/**\n * Object including array favorites and pagination metadata\n * @export\n * @interface ArrayFavoritesData\n */\nexport interface ArrayFavoritesData {\n /**\n * List of array infos\n * @type {Array<ArrayInfo>}\n * @memberof ArrayFavoritesData\n */\n arrays?: Array<ArrayInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof ArrayFavoritesData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * info of an array\n * @export\n * @interface ArrayInfo\n */\nexport interface ArrayInfo {\n /**\n * uuid\n * @type {string}\n * @memberof ArrayInfo\n */\n id: string;\n /**\n * uri of array (url encoded)\n * @type {string}\n * @memberof ArrayInfo\n */\n uri: string;\n /**\n * array of tags associated with the array\n * @type {Array<string>}\n * @memberof ArrayInfo\n */\n tags: Array<string>;\n /**\n * namespace array is in\n * @type {string}\n * @memberof ArrayInfo\n */\n namespace: string;\n /**\n * size in bytes of array\n * @type {number}\n * @memberof ArrayInfo\n */\n size?: number | null;\n /**\n * Datetime array was last accessed in UTC\n * @type {string}\n * @memberof ArrayInfo\n */\n last_accessed: string;\n /**\n * description of array\n * @type {string}\n * @memberof ArrayInfo\n */\n description: string;\n /**\n * description of array\n * @type {string}\n * @memberof ArrayInfo\n */\n name: string;\n /**\n * the username of the asset author\n * @type {string}\n * @memberof ArrayInfo\n */\n created_by?: string;\n /**\n * list of actions user is allowed to do on this array\n * @type {Array<ArrayActions>}\n * @memberof ArrayInfo\n */\n allowed_actions: Array<ArrayActions>;\n /**\n * License identifier from SPDX License List or Custom\n * @type {string}\n * @memberof ArrayInfo\n */\n license_id?: string;\n /**\n * License text\n * @type {string}\n * @memberof ArrayInfo\n */\n license_text?: string;\n /**\n * logo (base64 encoded) for the array. Optional\n * @type {string}\n * @memberof ArrayInfo\n */\n logo?: string;\n /**\n * \n * @type {ArrayType}\n * @memberof ArrayInfo\n */\n type?: ArrayType;\n /**\n * number of unique namespaces this array is shared with\n * @type {number}\n * @memberof ArrayInfo\n */\n share_count: number;\n /**\n * Suggests if the array was shared to public by owner\n * @type {boolean}\n * @memberof ArrayInfo\n */\n public_share?: boolean;\n /**\n * the name of the access credentials to use. if unset, the default credentials will be used\n * @type {string}\n * @memberof ArrayInfo\n */\n access_credentials_name: string;\n /**\n * Depends on the namespace asking, denotes the existence of subscription of namespace to this array\n * @type {boolean}\n * @memberof ArrayInfo\n */\n namespace_subscribed?: boolean;\n /**\n * URI for user with TileDB cloud service\n * @type {string}\n * @memberof ArrayInfo\n */\n tiledb_uri: string;\n /**\n * list of pricing created for this array\n * @type {Array<Pricing>}\n * @memberof ArrayInfo\n */\n pricing?: Array<Pricing>;\n /**\n * \n * @type {FileType}\n * @memberof ArrayInfo\n */\n file_type?: FileType;\n /**\n * map of file properties created for this array\n * @type {{ [key: string]: string; }}\n * @memberof ArrayInfo\n */\n file_properties?: { [key: string]: string; };\n /**\n * Suggests if the array is in read_only mode\n * @type {boolean}\n * @memberof ArrayInfo\n */\n read_only?: boolean | null;\n /**\n * Indicates whether the array is in user favorites\n * @type {boolean}\n * @memberof ArrayInfo\n */\n is_favorite?: boolean;\n /**\n * Datetime array was registered with tiledb\n * @type {string}\n * @memberof ArrayInfo\n */\n created_at: string;\n /**\n * The region where the array is saved to\n * @type {string}\n * @memberof ArrayInfo\n */\n region?: string | null;\n}\n/**\n * Metadata from array in Json format\n * @export\n * @interface ArrayMetadataEntry\n */\nexport interface ArrayMetadataEntry {\n /**\n * the metadata key\n * @type {string}\n * @memberof ArrayMetadataEntry\n */\n key: string;\n /**\n * the metadata value\n * @type {object}\n * @memberof ArrayMetadataEntry\n */\n value: object;\n /**\n * the data type of the metadata value\n * @type {string}\n * @memberof ArrayMetadataEntry\n */\n type: string;\n}\n/**\n * user\\'s TileDB array metadata\n * @export\n * @interface ArrayMetadataResponse\n */\nexport interface ArrayMetadataResponse {\n /**\n * List of metadata entries\n * @type {Array<ArrayMetadataEntry>}\n * @memberof ArrayMetadataResponse\n */\n data?: Array<ArrayMetadataEntry>;\n}\n/**\n * Params to register a new array\n * @export\n * @interface ArrayRegisterParams\n */\nexport interface ArrayRegisterParams {\n /**\n * uri of array (url encoded)\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n uri: string;\n /**\n * array of tags associated with the array\n * @type {Array<string>}\n * @memberof ArrayRegisterParams\n */\n tags?: Array<string>;\n /**\n * namespace array is in\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n namespace: string;\n /**\n * description of array\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n description?: string;\n /**\n * description of array\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n name: string;\n /**\n * License identifier from SPDX License List or Custom\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n license_id?: string;\n /**\n * License text\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n license_text?: string;\n /**\n * logo (base64 encoded) for the array. Optional\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n logo?: string;\n /**\n * the name of the access credentials to use. if unset, the default credentials will be used\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n access_credentials_name: string;\n /**\n * URI for user with TileDB cloud service\n * @type {string}\n * @memberof ArrayRegisterParams\n */\n tiledb_uri?: string;\n}\n/**\n * Sample data from array\n * @export\n * @interface ArraySample\n */\nexport interface ArraySample {\n /**\n * List of dimensions\n * @type {Array<{ [key: string]: object; }>}\n * @memberof ArraySample\n */\n dimensions?: Array<{ [key: string]: object; }>;\n /**\n * List of attributes\n * @type {Array<{ [key: string]: object; }>}\n * @memberof ArraySample\n */\n attributes?: Array<{ [key: string]: object; }>;\n}\n/**\n * ArraySchema\n * @export\n * @interface ArraySchema\n */\nexport interface ArraySchema {\n /**\n * URI of schema\n * @type {string}\n * @memberof ArraySchema\n */\n uri?: string;\n /**\n * file format version\n * @type {Array<number>}\n * @memberof ArraySchema\n */\n version?: Array<number>;\n /**\n * \n * @type {ArrayType}\n * @memberof ArraySchema\n */\n arrayType: ArrayType;\n /**\n * \n * @type {Layout}\n * @memberof ArraySchema\n */\n tileOrder: Layout;\n /**\n * \n * @type {Layout}\n * @memberof ArraySchema\n */\n cellOrder: Layout;\n /**\n * Capacity of array\n * @type {number}\n * @memberof ArraySchema\n */\n capacity: number;\n /**\n * \n * @type {FilterPipeline}\n * @memberof ArraySchema\n */\n coordsFilterPipeline: FilterPipeline;\n /**\n * \n * @type {FilterPipeline}\n * @memberof ArraySchema\n */\n offsetFilterPipeline: FilterPipeline;\n /**\n * \n * @type {Domain}\n * @memberof ArraySchema\n */\n domain: Domain;\n /**\n * Attributes of array\n * @type {Array<Attribute>}\n * @memberof ArraySchema\n */\n attributes: Array<Attribute>;\n /**\n * True if the array allows coordinate duplicates. Applicable only to sparse arrays.\n * @type {boolean}\n * @memberof ArraySchema\n */\n allowsDuplicates?: boolean;\n}\n/**\n * details for sharing a given array\n * @export\n * @interface ArraySharing\n */\nexport interface ArraySharing {\n /**\n * List of permitted actions\n * @type {Array<ArrayActions>}\n * @memberof ArraySharing\n */\n actions: Array<ArrayActions>;\n /**\n * namespace being granted array access can be a user or organization\n * @type {string}\n * @memberof ArraySharing\n */\n namespace: string;\n /**\n * \n * @type {NamespaceType}\n * @memberof ArraySharing\n */\n namespace_type: NamespaceType;\n}\n/**\n * details for sharing a given array\n * @export\n * @interface ArraySharingRequestParams\n */\nexport interface ArraySharingRequestParams {\n /**\n * List of permitted actions\n * @type {Array<ArrayActions>}\n * @memberof ArraySharingRequestParams\n */\n actions: Array<ArrayActions>;\n /**\n * namespace being granted array access can be a user or organization\n * @type {string}\n * @memberof ArraySharingRequestParams\n */\n namespace: string;\n}\n/**\n * Synchronous Task to Run\n * @export\n * @interface ArrayTask\n */\nexport interface ArrayTask {\n /**\n * task id\n * @type {string}\n * @memberof ArrayTask\n */\n id: string;\n /**\n * Optional task name\n * @type {string}\n * @memberof ArrayTask\n */\n name: string;\n /**\n * Optional task description (Task \\'s purpose)\n * @type {string}\n * @memberof ArrayTask\n */\n description: string;\n /**\n * \n * @type {ArrayInfo}\n * @memberof ArrayTask\n */\n array_metadata?: ArrayInfo;\n /**\n * \n * @type {DomainArray}\n * @memberof ArrayTask\n */\n subarray?: DomainArray;\n /**\n * memory allocated to task in bytes\n * @type {number}\n * @memberof ArrayTask\n */\n memory: number;\n /**\n * millicpu allocated to task\n * @type {number}\n * @memberof ArrayTask\n */\n cpu: number;\n /**\n * namespace task is tied to\n * @type {string}\n * @memberof ArrayTask\n */\n namespace: string;\n /**\n * \n * @type {ArrayTaskStatus}\n * @memberof ArrayTask\n */\n status: ArrayTaskStatus;\n /**\n * The reason the array task status is in the state\n * @type {string}\n * @memberof ArrayTask\n */\n status_message?: string | null;\n /**\n * Start time RFC3339 for job\n * @type {string}\n * @memberof ArrayTask\n */\n start_time?: string;\n /**\n * Finish time RFC3339 for job\n * @type {string}\n * @memberof ArrayTask\n */\n finish_time?: string;\n /**\n * Total accumulated for task in USD, example is $0.12\n * @type {number}\n * @memberof ArrayTask\n */\n cost: number;\n /**\n * Total accumulated for egress task in USD, example is $0.12\n * @type {number}\n * @memberof ArrayTask\n */\n egress_cost?: number;\n /**\n * Cost accumulated for access task in USD, example is $0.12\n * @type {number}\n * @memberof ArrayTask\n */\n access_cost?: number;\n /**\n * \n * @type {QueryType}\n * @memberof ArrayTask\n */\n query_type?: QueryType;\n /**\n * Optional actual code that is going to be executed\n * @type {string}\n * @memberof ArrayTask\n */\n udf_code?: string;\n /**\n * Optional actual language used to express udf_code\n * @type {string}\n * @memberof ArrayTask\n */\n udf_language?: string;\n /**\n * Optional actual sql query that is going to be executed\n * @type {string}\n * @memberof ArrayTask\n */\n sql_query?: string;\n /**\n * username that executed this task\n * @type {string}\n * @memberof ArrayTask\n */\n username?: string;\n /**\n * \n * @type {ArrayTaskType}\n * @memberof ArrayTask\n */\n type: ArrayTaskType;\n /**\n * Array activity logs for task\n * @type {Array<ArrayActivityLog>}\n * @memberof ArrayTask\n */\n activity?: Array<ArrayActivityLog>;\n /**\n * logs from array task\n * @type {string}\n * @memberof ArrayTask\n */\n logs: string;\n /**\n * duration in nanoseconds of an array task\n * @type {number}\n * @memberof ArrayTask\n */\n duration?: number;\n /**\n * SQL queries or commands to run before main sql query\n * @type {Array<string>}\n * @memberof ArrayTask\n */\n sql_init_commands?: Array<string>;\n /**\n * SQL query parameters\n * @type {Array<object>}\n * @memberof ArrayTask\n */\n sql_parameters?: Array<object>;\n /**\n * \n * @type {ResultFormat}\n * @memberof ArrayTask\n */\n result_format?: ResultFormat;\n /**\n * If set, the ID of the log for the task graph that this was part of. \n * @type {string}\n * @memberof ArrayTask\n */\n task_graph_uuid?: string;\n /**\n * If set, the client-defined ID of the node within this task\\'s graph. \n * @type {string}\n * @memberof ArrayTask\n */\n client_node_uuid?: string;\n /**\n * The name of the cloud provider where this task executed.\n * @type {string}\n * @memberof ArrayTask\n */\n cloud_provider?: string;\n /**\n * The region of the cloud provider where this task executed.\n * @type {string}\n * @memberof ArrayTask\n */\n cloud_region?: string;\n}\n/**\n * Object for ui array tasks browser page\n * @export\n * @interface ArrayTaskBrowserData\n */\nexport interface ArrayTaskBrowserData {\n /**\n * Array Tasks\n * @type {Array<ArrayTask>}\n * @memberof ArrayTaskBrowserData\n */\n array_tasks: Array<ArrayTask>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof ArrayTaskBrowserData\n */\n pagination_metadata: PaginationMetadata;\n}\n/**\n * Object for ui array tasks browser page\n * @export\n * @interface ArrayTaskBrowserSidebarData\n */\nexport interface ArrayTaskBrowserSidebarData {\n /**\n * list of all unique organizations the user is part of that have array tasks\n * @type {Array<string>}\n * @memberof ArrayTaskBrowserSidebarData\n */\n organizations?: Array<string>;\n /**\n * A count of \\\"all\\\"\n * @type {number}\n * @memberof ArrayTaskBrowserSidebarData\n */\n result_count_for_all?: number;\n /**\n * A map that includes the result count by namespace\n * @type {object}\n * @memberof ArrayTaskBrowserSidebarData\n */\n result_count_by_namespace?: object;\n}\n/**\n * Status of array task\n * @export\n * @enum {string}\n */\nexport enum ArrayTaskStatus {\n QUEUED = 'QUEUED',\n FAILED = 'FAILED',\n COMPLETED = 'COMPLETED',\n RUNNING = 'RUNNING',\n DENIED = 'DENIED',\n UNKNOWN = 'UNKNOWN',\n CANCELLED = 'CANCELLED',\n RESOURCESUNAVAILABLE = 'RESOURCES_UNAVAILABLE'\n}\n\n/**\n * Synchronous Task Type\n * @export\n * @enum {string}\n */\nexport enum ArrayTaskType {\n SQL = 'SQL',\n UDF = 'UDF',\n QUERY = 'QUERY',\n GENERICUDF = 'GENERIC_UDF',\n BATCHUDF = 'BATCH_UDF',\n CLIENTCOMPUTATION = 'CLIENT_COMPUTATION'\n}\n\n/**\n * TileDB array type\n * @export\n * @enum {string}\n */\nexport enum ArrayType {\n Dense = 'dense',\n Sparse = 'sparse'\n}\n\n/**\n * Actions a user can take on an asset\n * @export\n * @enum {string}\n */\nexport enum AssetAction {\n Read = 'read',\n Write = 'write',\n Edit = 'edit'\n}\n\n/**\n * \n * @export\n * @interface AssetActivityLog\n */\nexport interface AssetActivityLog {\n /**\n * The ID of the activity\n * @type {string}\n * @memberof AssetActivityLog\n */\n id: string;\n /**\n * time event took place (RFC3339)\n * @type {string}\n * @memberof AssetActivityLog\n */\n event_at: string;\n /**\n * type of the event\n * @type {string}\n * @memberof AssetActivityLog\n */\n action: string;\n /**\n * User who performed action\n * @type {string}\n * @memberof AssetActivityLog\n */\n username: string;\n /**\n * uuid of associated array task\n * @type {string}\n * @memberof AssetActivityLog\n */\n array_task_id?: string;\n /**\n * \n * @type {AssetActivityLogAsset}\n * @memberof AssetActivityLog\n */\n asset: AssetActivityLogAsset;\n}\n/**\n * The asset details\n * @export\n * @interface AssetActivityLogAsset\n */\nexport interface AssetActivityLogAsset {\n /**\n * The asset ID\n * @type {string}\n * @memberof AssetActivityLogAsset\n */\n id?: string;\n /**\n * The asset name\n * @type {string}\n * @memberof AssetActivityLogAsset\n */\n name?: string;\n /**\n * The namespace that the asset belongs to\n * @type {string}\n * @memberof AssetActivityLogAsset\n */\n namespace?: string;\n /**\n * \n * @type {AssetType}\n * @memberof AssetActivityLogAsset\n */\n asset_type?: AssetType;\n}\n/**\n * Object containing additional data of an asset \n * @export\n * @interface AssetAttributes\n */\nexport interface AssetAttributes {\n /**\n * List of actions user is allowed to do on this asset\n * @type {Array<AssetAction>}\n * @memberof AssetAttributes\n */\n asset_actions: Array<AssetAction>;\n}\n/**\n * Object containing the request payload\n * @export\n * @interface AssetAttributesRequest\n */\nexport interface AssetAttributesRequest {\n /**\n * \n * @type {Array<string>}\n * @memberof AssetAttributesRequest\n */\n asset_uuids: Array<string>;\n}\n/**\n * \n * @export\n * @interface AssetAttributesResponse\n */\nexport interface AssetAttributesResponse {\n /**\n * Object with UUIDs as keys and AssetAttributes as values\n * @type {object}\n * @memberof AssetAttributesResponse\n */\n data?: object;\n}\n/**\n * The technology that an asset is backed by\n * @export\n * @enum {string}\n */\nexport enum AssetBackingType {\n Array = 'array',\n Group = 'group'\n}\n\n/**\n * metadata of an asset\n * @export\n * @interface AssetInfo\n */\nexport interface AssetInfo {\n /**\n * unique ID of a registered asset\n * @type {string}\n * @memberof AssetInfo\n */\n uuid: string;\n /**\n * \n * @type {AssetType}\n * @memberof AssetInfo\n */\n asset_type: AssetType;\n /**\n * \n * @type {AssetBackingType}\n * @memberof AssetInfo\n */\n asset_backing_type: AssetBackingType;\n /**\n * \n * @type {AssetOwnershipLevel}\n * @memberof AssetInfo\n */\n asset_ownership_level: AssetOwnershipLevel;\n /**\n * namespace_name that the asset is registered to\n * @type {string}\n * @memberof AssetInfo\n */\n namespace_name: string;\n /**\n * namespace_uuid that the asset is registered to\n * @type {string}\n * @memberof AssetInfo\n */\n namespace_uuid: string;\n /**\n * name of asset\n * @type {string}\n * @memberof AssetInfo\n */\n name: string;\n /**\n * mime type of the asset\n * @type {string}\n * @memberof AssetInfo\n */\n mime_type: string;\n /**\n * Time when the asset was created (rfc3339)\n * @type {string}\n * @memberof AssetInfo\n */\n created_at: string;\n}\n/**\n * Asset associated with a TileDB Cloud account\n * @export\n * @interface AssetListResponse\n */\nexport interface AssetListResponse {\n /**\n * asset information for each asset\n * @type {Array<AssetInfo>}\n * @memberof AssetListResponse\n */\n data?: Array<AssetInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof AssetListResponse\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * List of assets grouped by the asset and ownership_level\n * @export\n * @interface AssetListSummariesResponse\n */\nexport interface AssetListSummariesResponse {\n /**\n * \n * @type {AssetListSummariesResponseData}\n * @memberof AssetListSummariesResponse\n */\n data?: AssetListSummariesResponseData;\n}\n/**\n * asset information for each asset\n * @export\n * @interface AssetListSummariesResponseData\n */\nexport interface AssetListSummariesResponseData {\n /**\n * \n * @type {{ [key: string]: number; }}\n * @memberof AssetListSummariesResponseData\n */\n owned?: { [key: string]: number; };\n /**\n * \n * @type {{ [key: string]: number; }}\n * @memberof AssetListSummariesResponseData\n */\n shared?: { [key: string]: number; };\n}\n/**\n * Custom storage locations on a per-asset type basis. If any is unset, a suffix of the owning (user/organization) `default_s3_path` is used. \n * @export\n * @interface AssetLocations\n */\nexport interface AssetLocations {\n /**\n * \n * @type {StorageLocation}\n * @memberof AssetLocations\n */\n arrays?: StorageLocation;\n /**\n * \n * @type {StorageLocation}\n * @memberof AssetLocations\n */\n files?: StorageLocation;\n /**\n * \n * @type {StorageLocation}\n * @memberof AssetLocations\n */\n ml_models?: StorageLocation;\n /**\n * \n * @type {StorageLocation}\n * @memberof AssetLocations\n */\n notebooks?: StorageLocation;\n /**\n * \n * @type {StorageLocation}\n * @memberof AssetLocations\n */\n task_graphs?: StorageLocation;\n /**\n * \n * @type {StorageLocation}\n * @memberof AssetLocations\n */\n udfs?: StorageLocation;\n /**\n * \n * @type {StorageLocation}\n * @memberof AssetLocations\n */\n groups?: StorageLocation;\n}\n/**\n * user\\'s edit metadata request body\n * @export\n * @interface AssetMetadataRequest\n */\nexport interface AssetMetadataRequest {\n /**\n * \n * @type {AssetBackingType}\n * @memberof AssetMetadataRequest\n */\n asset_backing_type: AssetBackingType;\n /**\n * List of metadata entries to be inserted/updated/deleted\n * @type {Array<NewAssetMetadataEntry>}\n * @memberof AssetMetadataRequest\n */\n entries: Array<NewAssetMetadataEntry>;\n}\n/**\n * The ownership level of the asset\n * @export\n * @enum {string}\n */\nexport enum AssetOwnershipLevel {\n Owned = 'owned',\n Shared = 'shared'\n}\n\n/**\n * Asset types represented as TileDB arrays\n * @export\n * @enum {string}\n */\nexport enum AssetType {\n Array = 'array',\n Notebook = 'notebook',\n Dashboard = 'dashboard',\n UserDefinedFunction = 'user_defined_function',\n MlModel = 'ml_model',\n File = 'file',\n RegisteredTaskGraph = 'registered_task_graph',\n Group = 'group',\n Vcf = 'vcf',\n Soma = 'soma',\n Pointcloud = 'pointcloud',\n Bioimg = 'bioimg',\n Geometry = 'geometry',\n Raster = 'raster',\n VectorSearch = 'vector_search'\n}\n\n/**\n * Attribute of array\n * @export\n * @interface Attribute\n */\nexport interface Attribute {\n /**\n * Attribute name\n * @type {string}\n * @memberof Attribute\n */\n name: string;\n /**\n * \n * @type {Datatype}\n * @memberof Attribute\n */\n type: Datatype;\n /**\n * \n * @type {FilterPipeline}\n * @memberof Attribute\n */\n filterPipeline: FilterPipeline;\n /**\n * Attribute number of values per cell\n * @type {number}\n * @memberof Attribute\n */\n cellValNum: number;\n /**\n * Is attribute nullable\n * @type {boolean}\n * @memberof Attribute\n */\n nullable?: boolean;\n /**\n * The default fill value\n * @type {Array<number>}\n * @memberof Attribute\n */\n fillValue?: Array<number>;\n}\n/**\n * Credential information to access Microsoft Azure. Each supported property is the snake_case version of its name in an Azure Storage connection string.\n * @export\n * @interface AzureCredential\n */\nexport interface AzureCredential {\n /**\n * The name of the Azure account to access\n * @type {string}\n * @memberof AzureCredential\n */\n account_name?: string;\n /**\n * The secret key. Never returned in responses.\n * @type {string}\n * @memberof AzureCredential\n */\n account_key?: string;\n}\n/**\n * Token information to access Azure services\n * @export\n * @interface AzureToken\n */\nexport interface AzureToken {\n /**\n * The account name of the configuration\n * @type {string}\n * @memberof AzureToken\n */\n account_name?: string;\n /**\n * The token to use for this account\n * @type {string}\n * @memberof AzureToken\n */\n sas_token?: string;\n}\n/**\n * Backoff is a backoff strategy to use within retryStrategy\n * @export\n * @interface Backoff\n */\nexport interface Backoff {\n /**\n * Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. \\\"2m\\\", \\\"1h\\\")\n * @type {string}\n * @memberof Backoff\n */\n duration?: string;\n /**\n * Factor is a factor to multiply the base duration after each failed retry\n * @type {number}\n * @memberof Backoff\n */\n factor?: number;\n /**\n * MaxDuration is the maximum amount of time allowed for the backoff strategy\n * @type {string}\n * @memberof Backoff\n */\n maxDuration?: string;\n}\n/**\n * overview visible data\n * @export\n * @interface BillingOverview\n */\nexport interface BillingOverview {\n /**\n * \n * @type {Invoice}\n * @memberof BillingOverview\n */\n current_invoice: Invoice;\n /**\n * \n * @type {AccountOverview}\n * @memberof BillingOverview\n */\n account_overview: AccountOverview;\n}\n/**\n * Parameters for ingesting bioimaging data. See tiledb.cloud.bioimg.ingestion.ingest for details. \n * @export\n * @interface BioImagingIngestionRequest\n */\nexport interface BioImagingIngestionRequest {\n /**\n * The source file or directory to use.\n * @type {string}\n * @memberof BioImagingIngestionRequest\n */\n source?: string;\n /**\n * The name of the ARN credentials to use to read source data and write to destination.\n * @type {string}\n * @memberof BioImagingIngestionRequest\n */\n access_credentials_name?: string;\n /**\n * The TileDB path to store the output group(s).\n * @type {string}\n * @memberof BioImagingIngestionRequest\n */\n destination?: string;\n /**\n * The name of the created taskgraph.\n * @type {string}\n * @memberof BioImagingIngestionRequest\n */\n taskgraph_name?: string;\n /**\n * The memory that will be needed in GiB.\n * @type {string}\n * @memberof BioImagingIngestionRequest\n */\n memory?: string;\n /**\n * The number of threads.\n * @type {number}\n * @memberof BioImagingIngestionRequest\n */\n threads?: number;\n /**\n * The number of cpu cores.\n * @type {number}\n * @memberof BioImagingIngestionRequest\n */\n cpu?: number;\n /**\n * Should ingest be in chunks.\n * @type {boolean}\n * @memberof BioImagingIngestionRequest\n */\n chunked?: boolean;\n /**\n * Verbose ingest or not.\n * @type {boolean}\n * @memberof BioImagingIngestionRequest\n */\n verbose?: boolean;\n}\n/**\n * Request body to change the credentials of the given assets\n * @export\n * @interface ChangeAssetCredentialsRequest\n */\nexport interface ChangeAssetCredentialsRequest {\n /**\n * The name or uuid of the access credentials\n * @type {string}\n * @memberof ChangeAssetCredentialsRequest\n */\n access_credentials: string;\n /**\n * The list of asset uuids to have their credentials changed\n * @type {Array<string>}\n * @memberof ChangeAssetCredentialsRequest\n */\n asset_uuids: Array<string>;\n}\n/**\n * A service where data is stored or computations take place.\n * @export\n * @enum {string}\n */\nexport enum CloudProvider {\n AWS = 'AWS',\n AZURE = 'AZURE',\n GCP = 'GCP'\n}\n\n/**\n * Token to use regarding the email confirmation\n * @export\n * @interface ConfirmEmail\n */\nexport interface ConfirmEmail {\n /**\n * confirm email api token for user\n * @type {string}\n * @memberof ConfirmEmail\n */\n token?: string;\n}\n/**\n * data to create user in organization\n * @export\n * @interface CreateOrganizationUserParams\n */\nexport interface CreateOrganizationUserParams {\n /**\n * username for user\n * @type {string}\n * @memberof CreateOrganizationUserParams\n */\n username: string;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof CreateOrganizationUserParams\n */\n role: OrganizationRoles;\n}\n/**\n * TileDB data type\n * @export\n * @enum {string}\n */\nexport enum Datatype {\n INT32 = 'INT32',\n INT64 = 'INT64',\n FLOAT32 = 'FLOAT32',\n FLOAT64 = 'FLOAT64',\n CHAR = 'CHAR',\n INT8 = 'INT8',\n UINT8 = 'UINT8',\n INT16 = 'INT16',\n UINT16 = 'UINT16',\n UINT32 = 'UINT32',\n UINT64 = 'UINT64',\n STRINGASCII = 'STRING_ASCII',\n STRINGUTF8 = 'STRING_UTF8',\n STRINGUTF16 = 'STRING_UTF16',\n STRINGUTF32 = 'STRING_UTF32',\n STRINGUCS2 = 'STRING_UCS2',\n STRINGUCS4 = 'STRING_UCS4',\n ANY = 'ANY',\n DATETIMEYEAR = 'DATETIME_YEAR',\n DATETIMEMONTH = 'DATETIME_MONTH',\n DATETIMEWEEK = 'DATETIME_WEEK',\n DATETIMEDAY = 'DATETIME_DAY',\n DATETIMEHR = 'DATETIME_HR',\n DATETIMEMIN = 'DATETIME_MIN',\n DATETIMESEC = 'DATETIME_SEC',\n DATETIMEMS = 'DATETIME_MS',\n DATETIMEUS = 'DATETIME_US',\n DATETIMENS = 'DATETIME_NS',\n DATETIMEPS = 'DATETIME_PS',\n DATETIMEFS = 'DATETIME_FS',\n DATETIMEAS = 'DATETIME_AS',\n TIMEHR = 'TIME_HR',\n TIMEMIN = 'TIME_MIN',\n TIMESEC = 'TIME_SEC',\n TIMEMS = 'TIME_MS',\n TIMEUS = 'TIME_US',\n TIMENS = 'TIME_NS',\n TIMEPS = 'TIME_PS',\n TIMEFS = 'TIME_FS',\n TIMEAS = 'TIME_AS',\n BLOB = 'BLOB',\n BOOL = 'BOOL'\n}\n\n/**\n * The depth param for asset listing\n * @export\n * @enum {string}\n */\nexport enum DepthParam {\n Root = 'root',\n All = 'all'\n}\n\n/**\n * Dimension of array\n * @export\n * @interface Dimension\n */\nexport interface Dimension {\n /**\n * Dimension name\n * @type {string}\n * @memberof Dimension\n */\n name?: string;\n /**\n * \n * @type {Datatype}\n * @memberof Dimension\n */\n type: Datatype;\n /**\n * \n * @type {DomainArray}\n * @memberof Dimension\n */\n domain: DomainArray;\n /**\n * Is tile extent null\n * @type {boolean}\n * @memberof Dimension\n */\n nullTileExtent: boolean;\n /**\n * \n * @type {DimensionTileExtent}\n * @memberof Dimension\n */\n tileExtent?: DimensionTileExtent;\n /**\n * \n * @type {FilterPipeline}\n * @memberof Dimension\n */\n filterPipeline?: FilterPipeline;\n}\n/**\n * Extent of tile\n * @export\n * @interface DimensionTileExtent\n */\nexport interface DimensionTileExtent {\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n int8?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n uint8?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n int16?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n uint16?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n int32?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n uint32?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n int64?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n uint64?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n float32?: number;\n /**\n * \n * @type {number}\n * @memberof DimensionTileExtent\n */\n float64?: number;\n}\n/**\n * Domain of array\n * @export\n * @interface Domain\n */\nexport interface Domain {\n /**\n * \n * @type {Datatype}\n * @memberof Domain\n */\n type: Datatype;\n /**\n * \n * @type {Layout}\n * @memberof Domain\n */\n tileOrder: Layout;\n /**\n * \n * @type {Layout}\n * @memberof Domain\n */\n cellOrder: Layout;\n /**\n * Array of dimensions\n * @type {Array<Dimension>}\n * @memberof Domain\n */\n dimensions: Array<Dimension>;\n}\n/**\n * Domain object for an array of each type\n * @export\n * @interface DomainArray\n */\nexport interface DomainArray {\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n int8?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n uint8?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n int16?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n uint16?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n int32?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n uint32?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n int64?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n uint64?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n float32?: Array<number>;\n /**\n * \n * @type {Array<number>}\n * @memberof DomainArray\n */\n float64?: Array<number>;\n}\n/**\n * The record of a check of a single domain\\'s status.\n * @export\n * @interface DomainCheckResult\n */\nexport interface DomainCheckResult {\n /**\n * The timestamp when the check was performed.\n * @type {string}\n * @memberof DomainCheckResult\n */\n time: string;\n /**\n * \n * @type {DomainCheckStatus}\n * @memberof DomainCheckResult\n */\n status: DomainCheckStatus;\n}\n/**\n * The status of a single check on a domain\\'s status.\n * @export\n * @enum {string}\n */\nexport enum DomainCheckStatus {\n Verified = 'verified',\n Failed = 'failed',\n Error = 'error'\n}\n\n/**\n * The current status of the claim on the domain.\n * @export\n * @enum {string}\n */\nexport enum DomainVerificationStatus {\n Unverified = 'unverified',\n Verified = 'verified',\n GracePeriod = 'grace_period',\n Failed = 'failed'\n}\n\n/**\n * Beta features that the user/organization has access to\n * @export\n * @enum {string}\n */\nexport enum EnabledFeature {\n Monetization = 'monetization',\n Notebooks = 'notebooks',\n NotebookSharing = 'notebook_sharing',\n Groups = 'groups',\n DomainSso = 'domain_sso',\n Ingestion = 'ingestion',\n CloudImages = 'cloud_images'\n}\n\n/**\n * TileDB Encryption type\n * @export\n * @enum {string}\n */\nexport enum EncryptionType {\n NOENCRYPTION = 'NO_ENCRYPTION',\n AES256GCM = 'AES_256_GCM'\n}\n\n/**\n * Parameters for ingesting files. See tiledb.cloud.file.ingestion.ingest for details. \n * @export\n * @interface FileIngestionRequest\n */\nexport interface FileIngestionRequest {\n /**\n * The source URI.\n * @type {string}\n * @memberof FileIngestionRequest\n */\n search_uri?: string;\n /**\n * The destination URI.\n * @type {string}\n * @memberof FileIngestionRequest\n */\n dataset_uri?: string;\n /**\n * The URI of the group to ingest all files into (optional).\n * @type {string}\n * @memberof FileIngestionRequest\n */\n group_uri?: string;\n /**\n * The name of the ARN credentials to use to read source data and write to destination.\n * @type {string}\n * @memberof FileIngestionRequest\n */\n access_credentials_name?: string;\n /**\n * Verbose ingest or not.\n * @type {boolean}\n * @memberof FileIngestionRequest\n */\n verbose?: boolean;\n /**\n * UNIX shell style pattern to filter files in the search\n * @type {string}\n * @memberof FileIngestionRequest\n */\n pattern?: string;\n /**\n * UNIX shell style pattern to filter files in the search\n * @type {string}\n * @memberof FileIngestionRequest\n */\n ignore?: string;\n /**\n * Optional name for taskgraph, defaults to \\\"file-ingestion\\\"\n * @type {string}\n * @memberof FileIngestionRequest\n */\n taskgraph_name?: string;\n /**\n * Batch size for file ingestion, defaults to 100\n * @type {number}\n * @memberof FileIngestionRequest\n */\n batch_size?: number;\n /**\n * maximum number of File URIs to read/find\n * @type {number}\n * @memberof FileIngestionRequest\n */\n max_files?: number;\n}\n/**\n * File property assigned to a specific file (array)\n * @export\n * @enum {string}\n */\nexport enum FilePropertyName {\n Image = 'image',\n Size = 'size',\n CodeBlock = 'code_block',\n UdfLanguage = 'udf_language',\n IsDashboard = 'is_dashboard'\n}\n\n/**\n * File types represented as TileDB arrays\n * @export\n * @enum {string}\n */\nexport enum FileType {\n Notebook = 'notebook',\n UserDefinedFunction = 'user_defined_function',\n MlModel = 'ml_model',\n File = 'file',\n RegisteredTaskGraph = 'registered_task_graph'\n}\n\n/**\n * Uploaded file name and information\n * @export\n * @interface FileUploaded\n */\nexport interface FileUploaded {\n /**\n * output location of the TileDB File\n * @type {string}\n * @memberof FileUploaded\n */\n output_uri: string;\n /**\n * name of the file uploaded\n * @type {string}\n * @memberof FileUploaded\n */\n file_name: string;\n /**\n * unique ID of the uploaded file\n * @type {string}\n * @memberof FileUploaded\n */\n id: string;\n}\n/**\n * Filter\n * @export\n * @interface Filter\n */\nexport interface Filter {\n /**\n * \n * @type {FilterType}\n * @memberof Filter\n */\n type: FilterType;\n /**\n * \n * @type {FilterData}\n * @memberof Filter\n */\n data: FilterData;\n}\n/**\n * Filter data\n * @export\n * @interface FilterData\n */\nexport interface FilterData {\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n int8?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n uint8?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n int16?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n uint16?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n int32?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n uint32?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n int64?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n uint64?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n float32?: number;\n /**\n * \n * @type {number}\n * @memberof FilterData\n */\n float64?: number;\n}\n/**\n * TileDB filter option\n * @export\n * @enum {string}\n */\nexport enum FilterOption {\n COMPRESSIONLEVEL = 'COMPRESSION_LEVEL',\n BITWIDTHMAXWINDOW = 'BIT_WIDTH_MAX_WINDOW',\n POSITIVEDELTAMAXWINDOW = 'POSITIVE_DELTA_MAX_WINDOW'\n}\n\n/**\n * One or more filters to apply\n * @export\n * @interface FilterPipeline\n */\nexport interface FilterPipeline {\n /**\n * \n * @type {Array<Filter>}\n * @memberof FilterPipeline\n */\n filters?: Array<Filter>;\n}\n/**\n * TileDB filter types\n * @export\n * @enum {string}\n */\nexport enum FilterType {\n NONE = 'FILTER_NONE',\n GZIP = 'FILTER_GZIP',\n ZSTD = 'FILTER_ZSTD',\n LZ4 = 'FILTER_LZ4',\n RLE = 'FILTER_RLE',\n BZIP2 = 'FILTER_BZIP2',\n DOUBLEDELTA = 'FILTER_DOUBLE_DELTA',\n BITWIDTHREDUCTION = 'FILTER_BIT_WIDTH_REDUCTION',\n BITSHUFFLE = 'FILTER_BITSHUFFLE',\n BYTESHUFFLE = 'FILTER_BYTESHUFFLE',\n POSITIVEDELTA = 'FILTER_POSITIVE_DELTA'\n}\n\n/**\n * Credential information to access Google Cloud. using well knows key/secret pair to access storage.\n * @export\n * @interface GCPInteroperabilityCredential\n */\nexport interface GCPInteroperabilityCredential {\n /**\n * The ID of the access key\n * @type {string}\n * @memberof GCPInteroperabilityCredential\n */\n access_key_id?: string;\n /**\n * The access key\\'s secret. Never returned in responses.\n * @type {string}\n * @memberof GCPInteroperabilityCredential\n */\n secret_access_key?: string;\n}\n/**\n * The key to a Google Cloud Platform service account.\n * @export\n * @interface GCPServiceAccountKey\n */\nexport interface GCPServiceAccountKey {\n /**\n * The ID of the service account (i.e., its email address). This is ignored when uploading key information, and is only provided by the server when downloading metadata about an existing key. \n * @type {string}\n * @memberof GCPServiceAccountKey\n */\n account_id?: string;\n /**\n * The ID of the particular key. This identifies it among other keys issued for this service account. This is ignored when uploading key information, and is only provided by the server when downloading metadata about an existing key. \n * @type {string}\n * @memberof GCPServiceAccountKey\n */\n key_id?: string;\n /**\n * The full file provided by Google Cloud. This is usually in the form of a JSON document, but TileDB Cloud treats it as opaque (except to attempt to extract the service account ID and the key ID). \n * @type {string}\n * @memberof GCPServiceAccountKey\n */\n key_text?: string;\n}\n/**\n * User sign in with github\n * @export\n * @interface GithubSignIn\n */\nexport interface GithubSignIn {\n /**\n * github\\'s redirect code param\n * @type {string}\n * @memberof GithubSignIn\n */\n code: string;\n /**\n * flag to create a token with expiration of 30 days, default is false\n * @type {string}\n * @memberof GithubSignIn\n */\n remember_me?: string;\n}\n/**\n * User sign in with google\n * @export\n * @interface GoogleSignIn\n */\nexport interface GoogleSignIn {\n /**\n * google\\'s user access_token\n * @type {string}\n * @memberof GoogleSignIn\n */\n access_token: string;\n /**\n * flag to create a token with expiration of 30 days, default is false\n * @type {string}\n * @memberof GoogleSignIn\n */\n remember_me?: string;\n}\n/**\n * Response data from a successfully-started task graph.\n * @export\n * @interface GraphStartedResponse\n */\nexport interface GraphStartedResponse {\n /**\n * The UUID of the newly created\n * @type {string}\n * @memberof GraphStartedResponse\n */\n task_graph_uuid?: string;\n}\n/**\n * actions a user can take on a group\n * @export\n * @enum {string}\n */\nexport enum GroupActions {\n Read = 'read',\n Write = 'write',\n Edit = 'edit'\n}\n\n/**\n * Object containing activity logs of a group and its content (arrays and subgroups) along with pagination metadata\n * @export\n * @interface GroupActivityResponse\n */\nexport interface GroupActivityResponse {\n /**\n * Array of activity logs, including both group and array activities\n * @type {Array<AssetActivityLog>}\n * @memberof GroupActivityResponse\n */\n activity_logs?: Array<AssetActivityLog>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof GroupActivityResponse\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Object including group info and pagination metadata\n * @export\n * @interface GroupBrowserData\n */\nexport interface GroupBrowserData {\n /**\n * Groups Info\n * @type {Array<GroupInfo>}\n * @memberof GroupBrowserData\n */\n groups: Array<GroupInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof GroupBrowserData\n */\n pagination_metadata: PaginationMetadata;\n}\n/**\n * Object with data to fill browser filter\n * @export\n * @interface GroupBrowserFilterData\n */\nexport interface GroupBrowserFilterData {\n /**\n * list of all unique namespaces to display\n * @type {Array<string>}\n * @memberof GroupBrowserFilterData\n */\n namespaces?: Array<string>;\n /**\n * list of all available group types to display\n * @type {Array<GroupType>}\n * @memberof GroupBrowserFilterData\n */\n group_types?: Array<GroupType>;\n}\n/**\n * Object containing activity of an asset of a group\n * @export\n * @interface GroupContentActivity\n */\nexport interface GroupContentActivity {\n /**\n * \n * @type {GroupContentActivityAsset}\n * @memberof GroupContentActivity\n */\n asset: GroupContentActivityAsset;\n /**\n * \n * @type {ArrayActivityLog}\n * @memberof GroupContentActivity\n */\n activity_log: ArrayActivityLog;\n}\n/**\n * The asset details\n * @export\n * @interface GroupContentActivityAsset\n */\nexport interface GroupContentActivityAsset {\n /**\n * The asset ID\n * @type {string}\n * @memberof GroupContentActivityAsset\n */\n id: string;\n /**\n * The asset name\n * @type {string}\n * @memberof GroupContentActivityAsset\n */\n name: string;\n /**\n * The namespace that the asset belongs to\n * @type {string}\n * @memberof GroupContentActivityAsset\n */\n namespace: string;\n /**\n * \n * @type {AssetType}\n * @memberof GroupContentActivityAsset\n */\n asset_type: AssetType;\n}\n/**\n * Object containing activity logs of group content along with the pagination metadata\n * @export\n * @interface GroupContentActivityResponse\n */\nexport interface GroupContentActivityResponse {\n /**\n * Activity of a group\\'s content\n * @type {Array<GroupContentActivity>}\n * @memberof GroupContentActivityResponse\n */\n activity: Array<GroupContentActivity>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof GroupContentActivityResponse\n */\n pagination_metadata: PaginationMetadata;\n}\n/**\n * Object including a page of members of a group and pagination metadata\n * @export\n * @interface GroupContents\n */\nexport interface GroupContents {\n /**\n * Groups members\n * @type {Array<GroupEntry>}\n * @memberof GroupContents\n */\n entries: Array<GroupEntry>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof GroupContents\n */\n pagination_metadata: PaginationMetadata;\n}\n/**\n * Updates the contents group\n * @export\n * @interface GroupContentsChangesRequest\n */\nexport interface GroupContentsChangesRequest {\n /**\n * \n * @type {TileDBConfig}\n * @memberof GroupContentsChangesRequest\n */\n config: TileDBConfig;\n /**\n * \n * @type {GroupContentsChangesRequestGroupChanges}\n * @memberof GroupContentsChangesRequest\n */\n group_changes: GroupContentsChangesRequestGroupChanges;\n}\n/**\n * \n * @export\n * @interface GroupContentsChangesRequestGroupChanges\n */\nexport interface GroupContentsChangesRequestGroupChanges {\n /**\n * optional series of members to remove\n * @type {Array<string>}\n * @memberof GroupContentsChangesRequestGroupChanges\n */\n members_to_remove?: Array<string>;\n /**\n * optional series of members to add\n * @type {Array<GroupMember>}\n * @memberof GroupContentsChangesRequestGroupChanges\n */\n members_to_add?: Array<GroupMember>;\n}\n/**\n * Object with data to fill contents filter\n * @export\n * @interface GroupContentsFilterData\n */\nexport interface GroupContentsFilterData {\n /**\n * list of all unique namespaces to display\n * @type {Array<string>}\n * @memberof GroupContentsFilterData\n */\n namespaces?: Array<string>;\n}\n/**\n * Updates the contents group\n * @export\n * @interface GroupContentsMoveRequest\n */\nexport interface GroupContentsMoveRequest {\n /**\n * \n * @type {TileDBConfig}\n * @memberof GroupContentsMoveRequest\n */\n config: TileDBConfig;\n /**\n * \n * @type {GroupContentsMoveRequestGroupChanges}\n * @memberof GroupContentsMoveRequest\n */\n group_changes: GroupContentsMoveRequestGroupChanges;\n}\n/**\n * \n * @export\n * @interface GroupContentsMoveRequestGroupChanges\n */\nexport interface GroupContentsMoveRequestGroupChanges {\n /**\n * optional series of members to add\n * @type {Array<GroupMember>}\n * @memberof GroupContentsMoveRequestGroupChanges\n */\n members_to_move?: Array<GroupMember>;\n /**\n * \n * @type {GroupContentsMoveRequestGroupChangesTargetGroup}\n * @memberof GroupContentsMoveRequestGroupChanges\n */\n target_group?: GroupContentsMoveRequestGroupChangesTargetGroup;\n}\n/**\n * The target group to move contents to\n * @export\n * @interface GroupContentsMoveRequestGroupChangesTargetGroup\n */\nexport interface GroupContentsMoveRequestGroupChangesTargetGroup {\n /**\n * The namespace of the target group\n * @type {string}\n * @memberof GroupContentsMoveRequestGroupChangesTargetGroup\n */\n namespace: string;\n /**\n * The name of the target group\n * @type {string}\n * @memberof GroupContentsMoveRequestGroupChangesTargetGroup\n */\n name: string;\n}\n/**\n * information for creating a new group with the passed configuration\n * @export\n * @interface GroupCreate\n */\nexport interface GroupCreate {\n /**\n * \n * @type {TileDBConfig}\n * @memberof GroupCreate\n */\n config: TileDBConfig;\n /**\n * \n * @type {GroupCreateGroupDetails}\n * @memberof GroupCreate\n */\n group_details: GroupCreateGroupDetails;\n}\n/**\n * Initial attributes for the creation of a group.\n * @export\n * @interface GroupCreateGroupDetails\n */\nexport interface GroupCreateGroupDetails {\n /**\n * A human readable description of the contents of the group.\n * @type {string}\n * @memberof GroupCreateGroupDetails\n */\n description?: string;\n /**\n * The name of the group. If must be unique within the group.\n * @type {string}\n * @memberof GroupCreateGroupDetails\n */\n name?: string;\n /**\n * The unique name or id of the parent of the group. If empty, then the new group will be a top level group.\n * @type {string}\n * @memberof GroupCreateGroupDetails\n */\n parent?: string;\n /**\n * uri of group.\n * @type {string}\n * @memberof GroupCreateGroupDetails\n */\n uri?: string;\n /**\n * logo (base64 encoded) for the group. Optional\n * @type {string}\n * @memberof GroupCreateGroupDetails\n */\n logo?: string;\n /**\n * optional tags for groups.\n * @type {Array<string>}\n * @memberof GroupCreateGroupDetails\n */\n tags?: Array<string>;\n /**\n * License identifier from SPDX License List or Custom.\n * @type {string}\n * @memberof GroupCreateGroupDetails\n */\n license_id?: string;\n /**\n * License text\n * @type {string}\n * @memberof GroupCreateGroupDetails\n */\n license_text?: string;\n}\n/**\n * Object describing a single member of a group, which can be an array or a group\n * @export\n * @interface GroupEntry\n */\nexport interface GroupEntry {\n /**\n * \n * @type {GroupInfo}\n * @memberof GroupEntry\n */\n group?: GroupInfo;\n /**\n * \n * @type {ArrayInfo}\n * @memberof GroupEntry\n */\n array?: ArrayInfo;\n}\n/**\n * metadata of a group\n * @export\n * @interface GroupInfo\n */\nexport interface GroupInfo {\n /**\n * unique ID of registered group\n * @type {string}\n * @memberof GroupInfo\n */\n id: string;\n /**\n * namespace group is in\n * @type {string}\n * @memberof GroupInfo\n */\n namespace: string;\n /**\n * name of group\n * @type {string}\n * @memberof GroupInfo\n */\n name: string;\n /**\n * description of group\n * @type {string}\n * @memberof GroupInfo\n */\n description: string | null;\n /**\n * uri of group\n * @type {string}\n * @memberof GroupInfo\n */\n uri: string;\n /**\n * the username of the asset author\n * @type {string}\n * @memberof GroupInfo\n */\n created_by?: string;\n /**\n * uri for access through TileDB cloud\n * @type {string}\n * @memberof GroupInfo\n */\n tiledb_uri: string;\n /**\n * A count of direct array members\n * @type {number}\n * @memberof GroupInfo\n */\n asset_count?: number;\n /**\n * A count of direct group members\n * @type {number}\n * @memberof GroupInfo\n */\n group_count: number;\n /**\n * A count of direct members. This is the sum of asset_count and group_count\n * @type {number}\n * @memberof GroupInfo\n */\n size: number;\n /**\n * \n * @type {GroupType}\n * @memberof GroupInfo\n */\n group_type?: GroupType;\n /**\n * Datetime groups was last accessed in UTC\n * @type {string}\n * @memberof GroupInfo\n */\n last_accessed: string;\n /**\n * list of actions user is allowed to do on this group\n * @type {Array<GroupActions>}\n * @memberof GroupInfo\n */\n allowed_actions: Array<GroupActions>;\n /**\n * logo (base64 encoded) for the gruop. Optional\n * @type {string}\n * @memberof GroupInfo\n */\n logo?: string;\n /**\n * the name of the access credentials to use. if unset, the default credentials will be used\n * @type {string}\n * @memberof GroupInfo\n */\n access_credentials_name: string;\n /**\n * number of unique namespaces this group is shared with\n * @type {number}\n * @memberof GroupInfo\n */\n share_count: number;\n /**\n * Suggests if the group was shared to public by owner\n * @type {boolean}\n * @memberof GroupInfo\n */\n public_share: boolean;\n /**\n * optional tags for group\n * @type {Array<string>}\n * @memberof GroupInfo\n */\n tags?: Array<string>;\n /**\n * License identifier from SPDX License List or Custom\n * @type {string}\n * @memberof GroupInfo\n */\n license_id?: string;\n /**\n * License text\n * @type {string}\n * @memberof GroupInfo\n */\n license_text?: string;\n /**\n * Datetime array was registered with tiledb\n * @type {string}\n * @memberof GroupInfo\n */\n created_at: string;\n /**\n * The region where the array is saved to\n * @type {string}\n * @memberof GroupInfo\n */\n region?: string | null;\n}\n/**\n * A groups member, array or another groups, to add or remove from an existing group.\n * @export\n * @interface GroupMember\n */\nexport interface GroupMember {\n /**\n * The name of the member\n * @type {string}\n * @memberof GroupMember\n */\n name: string;\n /**\n * The uri of the member\n * @type {string}\n * @memberof GroupMember\n */\n uri: string;\n /**\n * \n * @type {GroupMemberType}\n * @memberof GroupMember\n */\n type: GroupMemberType;\n}\n/**\n * Specific file types of group members\n * @export\n * @enum {string}\n */\nexport enum GroupMemberAssetType {\n Group = 'group',\n Array = 'array',\n Notebook = 'notebook',\n Dashboard = 'dashboard',\n UserDefinedFunction = 'user_defined_function',\n MlModel = 'ml_model',\n File = 'file',\n Bioimg = 'bioimg',\n Soma = 'soma',\n Vcf = 'vcf',\n Pointcloud = 'pointcloud',\n Raster = 'raster',\n Geometry = 'geometry',\n VectorSearch = 'vector_search'\n}\n\n/**\n * File types that can be included in groups\n * @export\n * @enum {string}\n */\nexport enum GroupMemberType {\n GROUP = 'GROUP',\n ARRAY = 'ARRAY'\n}\n\n/**\n * user\\'s TileDB metadata\n * @export\n * @interface GroupMetadata\n */\nexport interface GroupMetadata {\n /**\n * List of metadata entries\n * @type {Array<GroupMetadataEntry>}\n * @memberof GroupMetadata\n */\n entries?: Array<GroupMetadataEntry>;\n}\n/**\n * key/value pair representing a group metadata map entry\n * @export\n * @interface GroupMetadataEntry\n */\nexport interface GroupMetadataEntry {\n /**\n * \n * @type {string}\n * @memberof GroupMetadataEntry\n */\n key: string;\n /**\n * \n * @type {string}\n * @memberof GroupMetadataEntry\n */\n type: string;\n /**\n * \n * @type {number}\n * @memberof GroupMetadataEntry\n */\n valueNum?: number;\n /**\n * \n * @type {object}\n * @memberof GroupMetadataEntry\n */\n value: object;\n /**\n * \n * @type {boolean}\n * @memberof GroupMetadataEntry\n */\n del?: boolean;\n}\n/**\n * Retrieves the metadata of a group\n * @export\n * @interface GroupMetadataRetrievalRequest\n */\nexport interface GroupMetadataRetrievalRequest {\n /**\n * \n * @type {TileDBConfig}\n * @memberof GroupMetadataRetrievalRequest\n */\n config?: TileDBConfig;\n}\n/**\n * information for creating a new group with the passed configuration\n * @export\n * @interface GroupRegister\n */\nexport interface GroupRegister {\n /**\n * \n * @type {TileDBConfig}\n * @memberof GroupRegister\n */\n config?: TileDBConfig;\n /**\n * \n * @type {GroupRegisterGroupDetails}\n * @memberof GroupRegister\n */\n group_details: GroupRegisterGroupDetails;\n}\n/**\n * Initial attributes for the creation of a group.\n * @export\n * @interface GroupRegisterGroupDetails\n */\nexport interface GroupRegisterGroupDetails {\n /**\n * A human readable description of the contents of the group.\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n description?: string;\n /**\n * The name of the group. If must be unique within the group.\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n name?: string;\n /**\n * The unique name or id of the parent of the group. If empty, then the new group will be a top level group.\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n parent?: string;\n /**\n * uri of group.\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n uri?: string;\n /**\n * logo (base64 encoded) for the group. Optional\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n logo?: string;\n /**\n * optional tags for groups.\n * @type {Array<string>}\n * @memberof GroupRegisterGroupDetails\n */\n tags?: Array<string>;\n /**\n * License identifier from SPDX License List or Custom.\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n license_id?: string;\n /**\n * License text\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n license_text?: string;\n /**\n * region of the group\n * @type {string}\n * @memberof GroupRegisterGroupDetails\n */\n region?: string;\n}\n/**\n * sharing state of a group with a namespace\n * @export\n * @interface GroupSharing\n */\nexport interface GroupSharing {\n /**\n * List of permitted actions for the group and all subgroups\n * @type {Array<GroupActions>}\n * @memberof GroupSharing\n */\n group_actions?: Array<GroupActions>;\n /**\n * List of permitted actions for all the subarrays of the group\n * @type {Array<ArrayActions>}\n * @memberof GroupSharing\n */\n array_actions?: Array<ArrayActions>;\n /**\n * namespace being granted group access can be a user or organization\n * @type {string}\n * @memberof GroupSharing\n */\n namespace: string;\n /**\n * details on if the namespace is a organization or user\n * @type {string}\n * @memberof GroupSharing\n */\n namespace_type: string;\n}\n/**\n * a request to share a group and all the contents with a namespace\n * @export\n * @interface GroupSharingRequest\n */\nexport interface GroupSharingRequest {\n /**\n * List of permitted actions for the group and all subgroups\n * @type {Array<GroupActions>}\n * @memberof GroupSharingRequest\n */\n group_actions?: Array<GroupActions>;\n /**\n * List of permitted actions for all the subarrays of the group\n * @type {Array<ArrayActions>}\n * @memberof GroupSharingRequest\n */\n array_actions?: Array<ArrayActions>;\n /**\n * namespace being granted group access can be a user or organization\n * @type {string}\n * @memberof GroupSharingRequest\n */\n namespace?: string;\n}\n/**\n * Group type is a hint for the groups contents and TileDB Cloud may use a specialized viewer for each type\n * @export\n * @enum {string}\n */\nexport enum GroupType {\n Generic = 'generic',\n Vcf = 'vcf',\n Soma = 'soma',\n Bioimg = 'bioimg',\n Pointcloud = 'pointcloud',\n Raster = 'raster',\n Geometry = 'geometry',\n VectorSearch = 'vector_search'\n}\n\n/**\n * Updates for a group. New values for the attributes.\n * @export\n * @interface GroupUpdate\n */\nexport interface GroupUpdate {\n /**\n * A human readable description of the content of the group\n * @type {string}\n * @memberof GroupUpdate\n */\n description?: string;\n /**\n * The name of the group. If must be unique within the group.\n * @type {string}\n * @memberof GroupUpdate\n */\n name?: string;\n /**\n * logo (base64 encoded) for the group. Optional\n * @type {string}\n * @memberof GroupUpdate\n */\n logo?: string;\n /**\n * the name of the access credentials to use. if unset, the default credentials will be used\n * @type {string}\n * @memberof GroupUpdate\n */\n access_credentials_name?: string;\n /**\n * optional tags for groups\n * @type {Array<string>}\n * @memberof GroupUpdate\n */\n tags?: Array<string>;\n /**\n * License identifier from SPDX License List or Custom\n * @type {string}\n * @memberof GroupUpdate\n */\n license_id?: string;\n /**\n * License text\n * @type {string}\n * @memberof GroupUpdate\n */\n license_text?: string;\n}\n/**\n * \n * @export\n * @interface InlineObject\n */\nexport interface InlineObject {\n /**\n * username to reset\n * @type {string}\n * @memberof InlineObject\n */\n username?: string;\n /**\n * email for account to reset\n * @type {string}\n * @memberof InlineObject\n */\n email?: string;\n}\n/**\n * \n * @export\n * @interface InlineObject1\n */\nexport interface InlineObject1 {\n /**\n * username for email confirmation\n * @type {string}\n * @memberof InlineObject1\n */\n username?: string;\n /**\n * email for confirmation email\n * @type {string}\n * @memberof InlineObject1\n */\n email?: string;\n}\n/**\n * \n * @export\n * @interface InlineResponse200\n */\nexport interface InlineResponse200 {\n /**\n * The login cookie existence\n * @type {boolean}\n * @memberof InlineResponse200\n */\n status?: boolean;\n}\n/**\n * Invitations to share or collaborate\n * @export\n * @interface Invitation\n */\nexport interface Invitation {\n /**\n * Unique id of invitation added to magic link\n * @type {string}\n * @memberof Invitation\n */\n id: string;\n /**\n * \n * @type {InvitationType}\n * @memberof Invitation\n */\n invitation_type: InvitationType;\n /**\n * Namespace of the owner of the invitation (user or organization)\n * @type {string}\n * @memberof Invitation\n */\n owner_namespace_uuid?: string;\n /**\n * Unique ID of the user that sent the invitation\n * @type {string}\n * @memberof Invitation\n */\n inviter_uuid?: string;\n /**\n * Unique id of the user accepted the invitation\n * @type {string}\n * @memberof Invitation\n */\n user_namespace_uuid?: string;\n /**\n * Unique ID of the organization whose user(s) accepted the invitation\n * @type {string}\n * @memberof Invitation\n */\n organization_uuid?: string;\n /**\n * Unique id of the organization user accepted the invitation\n * @type {string}\n * @memberof Invitation\n */\n organization_user_uuid?: string;\n /**\n * Name of the organization, does not persist in database\n * @type {string}\n * @memberof Invitation\n */\n organization_name?: string;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof Invitation\n */\n organization_role?: OrganizationRoles;\n /**\n * Unique id of the array\n * @type {string}\n * @memberof Invitation\n */\n array_uuid?: string;\n /**\n * Unique ID of the group\n * @type {string}\n * @memberof Invitation\n */\n group_uuid?: string;\n /**\n * Name of the array, does not persist in database\n * @type {string}\n * @memberof Invitation\n */\n array_name?: string;\n /**\n * Email of the individual we send the invitation to\n * @type {string}\n * @memberof Invitation\n */\n email: string;\n /**\n * A comma separated list of ArrayActions or NamespaceActions\n * @type {string}\n * @memberof Invitation\n */\n permissions: string;\n /**\n * A comma separated list of GroupActions\n * @type {string}\n * @memberof Invitation\n */\n group_actions?: string;\n /**\n * \n * @type {InvitationStatus}\n * @memberof Invitation\n */\n status: InvitationStatus;\n /**\n * Datetime the invitation was created in UTC\n * @type {string}\n * @memberof Invitation\n */\n created_at: string;\n /**\n * The namespace invited (user or organization, if it exists in the DB)\n * @type {string}\n * @memberof Invitation\n */\n namespace_invited?: string;\n}\n/**\n * Encapsulates information regarding inviting people using email to share array, same permissions for all invitees\n * @export\n * @interface InvitationArrayShareEmail\n */\nexport interface InvitationArrayShareEmail {\n /**\n * List of permitted actions\n * @type {Array<ArrayActions>}\n * @memberof InvitationArrayShareEmail\n */\n actions: Array<ArrayActions>;\n /**\n * \n * @type {Array<string>}\n * @memberof InvitationArrayShareEmail\n */\n invitee_email: Array<string>;\n}\n/**\n * Object including invitations and pagination metadata\n * @export\n * @interface InvitationData\n */\nexport interface InvitationData {\n /**\n * Invitations\n * @type {Array<Invitation>}\n * @memberof InvitationData\n */\n invitations?: Array<Invitation>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof InvitationData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Object including invitation details such as the array shared or organization\n * @export\n * @interface InvitationDetails\n */\nexport interface InvitationDetails {\n /**\n * \n * @type {InvitationType}\n * @memberof InvitationDetails\n */\n invitation_type: InvitationType;\n /**\n * \n * @type {InvitationStatus}\n * @memberof InvitationDetails\n */\n invitation_status: InvitationStatus;\n /**\n * \n * @type {InvitationDetailsArray}\n * @memberof InvitationDetails\n */\n array?: InvitationDetailsArray;\n /**\n * \n * @type {InvitationDetailsOrganization}\n * @memberof InvitationDetails\n */\n organization?: InvitationDetailsOrganization;\n /**\n * \n * @type {InvitationDetailsGroup}\n * @memberof InvitationDetails\n */\n group?: InvitationDetailsGroup;\n /**\n * \n * @type {InvitationDetailsAsset}\n * @memberof InvitationDetails\n */\n asset?: InvitationDetailsAsset;\n /**\n * \n * @type {InvitationDetailsInvitedBy}\n * @memberof InvitationDetails\n */\n invited_by: InvitationDetailsInvitedBy;\n /**\n * \n * @type {InvitationDetailsNamespaceInvited}\n * @memberof InvitationDetails\n */\n namespace_invited?: InvitationDetailsNamespaceInvited;\n}\n/**\n * the array shared\n * @export\n * @interface InvitationDetailsArray\n */\nexport interface InvitationDetailsArray {\n /**\n * array id\n * @type {string}\n * @memberof InvitationDetailsArray\n */\n id?: string;\n /**\n * the namespace that the array belongs to\n * @type {string}\n * @memberof InvitationDetailsArray\n */\n namespace?: string;\n /**\n * name of the array\n * @type {string}\n * @memberof InvitationDetailsArray\n */\n name?: string;\n /**\n * \n * @type {FileType}\n * @memberof InvitationDetailsArray\n */\n file_type?: FileType;\n /**\n * \n * @type {InvitationDetailsArrayFileProperties}\n * @memberof InvitationDetailsArray\n */\n file_properties?: InvitationDetailsArrayFileProperties;\n}\n/**\n * map of file properties created for this array\n * @export\n * @interface InvitationDetailsArrayFileProperties\n */\nexport interface InvitationDetailsArrayFileProperties {\n /**\n * \n * @type {string}\n * @memberof InvitationDetailsArrayFileProperties\n */\n is_dashboard?: string;\n}\n/**\n * the asset shared\n * @export\n * @interface InvitationDetailsAsset\n */\nexport interface InvitationDetailsAsset {\n /**\n * asset id\n * @type {string}\n * @memberof InvitationDetailsAsset\n */\n id: string;\n /**\n * the namespace that the asset belongs to\n * @type {string}\n * @memberof InvitationDetailsAsset\n */\n namespace: string;\n /**\n * the asset name\n * @type {string}\n * @memberof InvitationDetailsAsset\n */\n name: string;\n /**\n * asset\\'s logo\n * @type {string}\n * @memberof InvitationDetailsAsset\n */\n logo?: string | null;\n /**\n * \n * @type {AssetType}\n * @memberof InvitationDetailsAsset\n */\n asset_type: AssetType;\n /**\n * A comma separated list of ArrayActions\n * @type {string}\n * @memberof InvitationDetailsAsset\n */\n actions?: string;\n}\n/**\n * the group shared\n * @export\n * @interface InvitationDetailsGroup\n */\nexport interface InvitationDetailsGroup {\n /**\n * group id\n * @type {string}\n * @memberof InvitationDetailsGroup\n */\n id?: string;\n /**\n * the namespace that the group belongs to\n * @type {string}\n * @memberof InvitationDetailsGroup\n */\n namespace?: string;\n /**\n * the group name\n * @type {string}\n * @memberof InvitationDetailsGroup\n */\n name?: string;\n}\n/**\n * the user that created the invitation\n * @export\n * @interface InvitationDetailsInvitedBy\n */\nexport interface InvitationDetailsInvitedBy {\n /**\n * user id\n * @type {string}\n * @memberof InvitationDetailsInvitedBy\n */\n id: string;\n /**\n * user\\'s username\n * @type {string}\n * @memberof InvitationDetailsInvitedBy\n */\n username: string;\n /**\n * user\\'s display name\n * @type {string}\n * @memberof InvitationDetailsInvitedBy\n */\n name: string;\n /**\n * user\\'s logo\n * @type {string}\n * @memberof InvitationDetailsInvitedBy\n */\n logo?: string | null;\n}\n/**\n * the namespace that the invitation was sent to (if it is an organization)\n * @export\n * @interface InvitationDetailsNamespaceInvited\n */\nexport interface InvitationDetailsNamespaceInvited {\n /**\n * The id of the organization\n * @type {string}\n * @memberof InvitationDetailsNamespaceInvited\n */\n id?: string;\n /**\n * The namespace of the organization\n * @type {string}\n * @memberof InvitationDetailsNamespaceInvited\n */\n namespace?: string;\n}\n/**\n * the organization that the user was invited to\n * @export\n * @interface InvitationDetailsOrganization\n */\nexport interface InvitationDetailsOrganization {\n /**\n * organization id\n * @type {string}\n * @memberof InvitationDetailsOrganization\n */\n id: string;\n /**\n * organization name\n * @type {string}\n * @memberof InvitationDetailsOrganization\n */\n name: string;\n /**\n * organization logo\n * @type {string}\n * @memberof InvitationDetailsOrganization\n */\n logo?: string | null;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof InvitationDetailsOrganization\n */\n role: OrganizationRoles;\n}\n/**\n * Contains the invitation details to be included in a notification when the notification type is \\\"invitation\\\"\n * @export\n * @interface InvitationEvent\n */\nexport interface InvitationEvent {\n /**\n * The invitation uuid\n * @type {string}\n * @memberof InvitationEvent\n */\n invitation_id?: string;\n /**\n * \n * @type {InvitationType}\n * @memberof InvitationEvent\n */\n invitation_type?: InvitationType;\n /**\n * \n * @type {InvitationEventInvitedBy}\n * @memberof InvitationEvent\n */\n invited_by?: InvitationEventInvitedBy;\n /**\n * \n * @type {InvitationEventNamespaceInvited}\n * @memberof InvitationEvent\n */\n namespace_invited?: InvitationEventNamespaceInvited;\n /**\n * \n * @type {InvitationEventAsset}\n * @memberof InvitationEvent\n */\n asset?: InvitationEventAsset;\n /**\n * \n * @type {InvitationEventOrganization}\n * @memberof InvitationEvent\n */\n organization?: InvitationEventOrganization;\n}\n/**\n * the array shared\n * @export\n * @interface InvitationEventAsset\n */\nexport interface InvitationEventAsset {\n /**\n * array id\n * @type {string}\n * @memberof InvitationEventAsset\n */\n id?: string;\n /**\n * the namespace that the array belongs to\n * @type {string}\n * @memberof InvitationEventAsset\n */\n namespace?: string;\n /**\n * name of the array\n * @type {string}\n * @memberof InvitationEventAsset\n */\n name?: string;\n /**\n * \n * @type {AssetType}\n * @memberof InvitationEventAsset\n */\n asset_type?: AssetType;\n}\n/**\n * namespace that created the invitation\n * @export\n * @interface InvitationEventInvitedBy\n */\nexport interface InvitationEventInvitedBy {\n /**\n * Namespace\\'s uuid\n * @type {string}\n * @memberof InvitationEventInvitedBy\n */\n id?: string;\n /**\n * Namespace that created the invitation\n * @type {string}\n * @memberof InvitationEventInvitedBy\n */\n namespace?: string;\n /**\n * User\\'s name\n * @type {string}\n * @memberof InvitationEventInvitedBy\n */\n name?: string;\n /**\n * Namespace\\'s logo (base64 encoded)\n * @type {string}\n * @memberof InvitationEventInvitedBy\n */\n logo?: string;\n}\n/**\n * the namespace that the invitation was sent to (if it is an organization)\n * @export\n * @interface InvitationEventNamespaceInvited\n */\nexport interface InvitationEventNamespaceInvited {\n /**\n * The id of the organization\n * @type {string}\n * @memberof InvitationEventNamespaceInvited\n */\n id?: string;\n /**\n * The namespace of the organization\n * @type {string}\n * @memberof InvitationEventNamespaceInvited\n */\n namespace?: string;\n /**\n * The name of the organization\n * @type {string}\n * @memberof InvitationEventNamespaceInvited\n */\n name?: string;\n /**\n * The logo of the organization (base64 encoded)\n * @type {string}\n * @memberof InvitationEventNamespaceInvited\n */\n logo?: string;\n}\n/**\n * the organization that the user was invited to\n * @export\n * @interface InvitationEventOrganization\n */\nexport interface InvitationEventOrganization {\n /**\n * organization id\n * @type {string}\n * @memberof InvitationEventOrganization\n */\n id?: string;\n /**\n * organization name\n * @type {string}\n * @memberof InvitationEventOrganization\n */\n name?: string;\n /**\n * organization logo\n * @type {string}\n * @memberof InvitationEventOrganization\n */\n logo?: string;\n}\n/**\n * Encapsulates information regarding the failed invitation recipients\n * @export\n * @interface InvitationFailedRecipients\n */\nexport interface InvitationFailedRecipients {\n /**\n * \n * @type {Array<string>}\n * @memberof InvitationFailedRecipients\n */\n failed_recipients: Array<string>;\n}\n/**\n * Encapsulates information regarding inviting people using email to share group, same permissions for all invitees\n * @export\n * @interface InvitationGroupShareEmail\n */\nexport interface InvitationGroupShareEmail {\n /**\n * List of permitted array actions\n * @type {Array<ArrayActions>}\n * @memberof InvitationGroupShareEmail\n */\n array_actions: Array<ArrayActions>;\n /**\n * List of permitted group actions\n * @type {Array<GroupActions>}\n * @memberof InvitationGroupShareEmail\n */\n group_actions: Array<GroupActions>;\n /**\n * \n * @type {Array<string>}\n * @memberof InvitationGroupShareEmail\n */\n invitee_email_or_name: Array<string>;\n}\n/**\n * Encapsulates information regarding inviting people using email to join organization, same permissions for all invitees\n * @export\n * @interface InvitationOrganizationJoinEmail\n */\nexport interface InvitationOrganizationJoinEmail {\n /**\n * List of permitted actions\n * @type {Array<NamespaceActions>}\n * @memberof InvitationOrganizationJoinEmail\n */\n actions?: Array<NamespaceActions>;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof InvitationOrganizationJoinEmail\n */\n organization_role: OrganizationRoles;\n /**\n * \n * @type {Array<string>}\n * @memberof InvitationOrganizationJoinEmail\n */\n invitee_email: Array<string>;\n}\n/**\n * List of values that InvitationStatus can take\n * @export\n * @enum {string}\n */\nexport enum InvitationStatus {\n PENDING = 'PENDING',\n ACCEPTED = 'ACCEPTED'\n}\n\n/**\n * List of values that InvitationType can take\n * @export\n * @enum {string}\n */\nexport enum InvitationType {\n ARRAYSHARE = 'ARRAY_SHARE',\n GROUPSHARE = 'GROUP_SHARE',\n JOINORGANIZATION = 'JOIN_ORGANIZATION'\n}\n\n/**\n * An invoice, comprised of one or more InvoiceLine(s)\n * @export\n * @interface Invoice\n */\nexport interface Invoice {\n /**\n * Description of invoice\n * @type {string}\n * @memberof Invoice\n */\n invoice_description: string;\n /**\n * Start date of the period the invoice is referred to in UTC\n * @type {string}\n * @memberof Invoice\n */\n start: string;\n /**\n * End date of the period the invoice is referred to in UTC\n * @type {string}\n * @memberof Invoice\n */\n end: string;\n /**\n * Date the invoice is issued, referred to in UTC\n * @type {string}\n * @memberof Invoice\n */\n date_of_issue: string;\n /**\n * Date the invoice is due, referred to in UTC\n * @type {string}\n * @memberof Invoice\n */\n date_due: string;\n /**\n * The difference between starting and ending balance, added to Total to form AmountDue\n * @type {number}\n * @memberof Invoice\n */\n applied_balance?: number;\n /**\n * Amount due out of total\n * @type {number}\n * @memberof Invoice\n */\n amount_due: number;\n /**\n * Amount paid out of total\n * @type {number}\n * @memberof Invoice\n */\n amount_paid: number;\n /**\n * Amount remaining out of total\n * @type {number}\n * @memberof Invoice\n */\n amount_remaining: number;\n /**\n * Charging attempts\n * @type {number}\n * @memberof Invoice\n */\n attempt_count: number;\n /**\n * Attempted flag\n * @type {boolean}\n * @memberof Invoice\n */\n attempted: boolean;\n /**\n * Paid flag\n * @type {boolean}\n * @memberof Invoice\n */\n paid: boolean;\n /**\n * Tax of invoice\n * @type {number}\n * @memberof Invoice\n */\n tax: number;\n /**\n * Total minus Tax\n * @type {number}\n * @memberof Invoice\n */\n subtotal: number;\n /**\n * Total cost of invoice, the sum of all line items\n * @type {number}\n * @memberof Invoice\n */\n total: number;\n /**\n * Currency of total, three-letter ISO currency code, in lowercase\n * @type {string}\n * @memberof Invoice\n */\n currency: string;\n /**\n * Datetime the invoice was created in UTC\n * @type {string}\n * @memberof Invoice\n */\n created: string;\n /**\n * Array of invoice lines\n * @type {Array<InvoiceLine>}\n * @memberof Invoice\n */\n invoice_lines: Array<InvoiceLine>;\n /**\n * \n * @type {InvoiceStatus}\n * @memberof Invoice\n */\n status: InvoiceStatus;\n /**\n * \n * @type {InvoiceBillingReason}\n * @memberof Invoice\n */\n billing_reason: InvoiceBillingReason;\n /**\n * invoice id number\n * @type {string}\n * @memberof Invoice\n */\n number: string;\n /**\n * stripe customer email\n * @type {string}\n * @memberof Invoice\n */\n customer_email: string;\n /**\n * stripe customer name\n * @type {string}\n * @memberof Invoice\n */\n customer_name?: string;\n /**\n * \n * @type {InvoiceCustomerAddress}\n * @memberof Invoice\n */\n customer_address: InvoiceCustomerAddress;\n /**\n * url for downloading pdf of invoice\n * @type {string}\n * @memberof Invoice\n */\n invoice_pdf?: string;\n /**\n * current account balance, if its negatives there is credits left\n * @type {number}\n * @memberof Invoice\n */\n account_balance: number;\n}\n/**\n * List of values that InvoiceBillingReason can take.\n * @export\n * @enum {string}\n */\nexport enum InvoiceBillingReason {\n Manual = 'manual',\n Subscription = 'subscription',\n SubscriptionCreate = 'subscription_create',\n SubscriptionCycle = 'subscription_cycle',\n SubscriptionThreshold = 'subscription_threshold',\n SubscriptionUpdate = 'subscription_update',\n SubscriptionUpcoming = 'subscription_upcoming'\n}\n\n/**\n * stripe customer address\n * @export\n * @interface InvoiceCustomerAddress\n */\nexport interface InvoiceCustomerAddress {\n /**\n * \n * @type {string}\n * @memberof InvoiceCustomerAddress\n */\n city?: string;\n /**\n * \n * @type {string}\n * @memberof InvoiceCustomerAddress\n */\n country?: string;\n /**\n * \n * @type {string}\n * @memberof InvoiceCustomerAddress\n */\n line1?: string;\n /**\n * \n * @type {string}\n * @memberof InvoiceCustomerAddress\n */\n line2?: string;\n /**\n * \n * @type {string}\n * @memberof InvoiceCustomerAddress\n */\n postal_code?: string;\n /**\n * \n * @type {string}\n * @memberof InvoiceCustomerAddress\n */\n state?: string;\n}\n/**\n * A single line of an invoice\n * @export\n * @interface InvoiceLine\n */\nexport interface InvoiceLine {\n /**\n * Total amount for line item, in dollars\n * @type {number}\n * @memberof InvoiceLine\n */\n amount: number;\n /**\n * Currency of current balance, three-letter ISO currency code, in lowercase\n * @type {string}\n * @memberof InvoiceLine\n */\n currency: string;\n /**\n * Description of line item\n * @type {string}\n * @memberof InvoiceLine\n */\n line_description: string;\n /**\n * Quantity of line item\n * @type {number}\n * @memberof InvoiceLine\n */\n quantity: number;\n /**\n * Start date of the period the line item is referred to in UTC\n * @type {string}\n * @memberof InvoiceLine\n */\n start: string;\n /**\n * End date of the period the line item is referred to in UTC\n * @type {string}\n * @memberof InvoiceLine\n */\n end: string;\n /**\n * \n * @type {InvoiceLineType}\n * @memberof InvoiceLine\n */\n type: InvoiceLineType;\n /**\n * Rate of billing plan, in dollars\n * @type {number}\n * @memberof InvoiceLine\n */\n rate: number;\n /**\n * Label for rate\n * @type {string}\n * @memberof InvoiceLine\n */\n rate_unit_label: string;\n /**\n * Unit price column of line item\n * @type {string}\n * @memberof InvoiceLine\n */\n unit_price: string;\n}\n/**\n * List of values that InvoiceLineType can take.\n * @export\n * @enum {string}\n */\nexport enum InvoiceLineType {\n Invoiceitem = 'invoiceitem',\n Subscription = 'subscription'\n}\n\n/**\n * List of values that InvoiceBillingStatus can take.\n * @export\n * @enum {string}\n */\nexport enum InvoiceStatus {\n Draft = 'draft',\n Open = 'open',\n Paid = 'paid',\n Uncollectible = 'uncollectible',\n Void = 'void'\n}\n\n/**\n * Layout of array\n * @export\n * @enum {string}\n */\nexport enum Layout {\n RowMajor = 'row-major',\n ColMajor = 'col-major',\n GlobalOrder = 'global-order',\n Unordered = 'unordered'\n}\n\n/**\n * Object including array favorites and pagination metadata\n * @export\n * @interface ListFavoritesResponse\n */\nexport interface ListFavoritesResponse {\n /**\n * List of array infos\n * @type {Array<ArrayInfo>}\n * @memberof ListFavoritesResponse\n */\n arrays?: Array<ArrayInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof ListFavoritesResponse\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * User login\n * @export\n * @interface Login\n */\nexport interface Login {\n /**\n * username or email to login with\n * @type {string}\n * @memberof Login\n */\n username_or_email: string;\n /**\n * password\n * @type {string}\n * @memberof Login\n */\n password: string;\n /**\n * flag to create a token with expiration of 30 days, default is false\n * @type {string}\n * @memberof Login\n */\n remember_me?: string;\n}\n/**\n * A user-favorite MLModel item\n * @export\n * @interface MLModelFavorite\n */\nexport interface MLModelFavorite {\n /**\n * unique UUID of the MLModel\n * @type {string}\n * @memberof MLModelFavorite\n */\n mlmodel_uuid?: string;\n /**\n * the namespace of the MLModel\n * @type {string}\n * @memberof MLModelFavorite\n */\n namespace?: string;\n /**\n * the name of the MLModel\n * @type {string}\n * @memberof MLModelFavorite\n */\n name?: string;\n}\n/**\n * Object including MLModel favorites and pagination metadata\n * @export\n * @interface MLModelFavoritesData\n */\nexport interface MLModelFavoritesData {\n /**\n * List of MLModel infos\n * @type {Array<ArrayInfo>}\n * @memberof MLModelFavoritesData\n */\n mlmodels?: Array<ArrayInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof MLModelFavoritesData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * \n * @export\n * @interface ModelError\n */\nexport interface ModelError {\n /**\n * \n * @type {number}\n * @memberof ModelError\n */\n code: number;\n /**\n * \n * @type {string}\n * @memberof ModelError\n */\n message: string;\n}\n/**\n * actions a user can take on an organization\n * @export\n * @enum {string}\n */\nexport enum NamespaceActions {\n Read = 'read',\n Write = 'write',\n Create = 'create',\n Delete = 'delete',\n Edit = 'edit',\n ReadArrayLogs = 'read_array_logs',\n ReadJobLogs = 'read_job_logs',\n ReadObjectLogs = 'read_object_logs',\n RunJob = 'run_job',\n DeleteOrganization = 'delete_organization',\n EditOrganization = 'edit_organization'\n}\n\n/**\n * Type of namespace\n * @export\n * @enum {string}\n */\nexport enum NamespaceType {\n User = 'user',\n Organization = 'organization'\n}\n\n/**\n * key/value pair representing an array metadata map entry\n * @export\n * @interface NewAssetMetadataEntry\n */\nexport interface NewAssetMetadataEntry {\n /**\n * \n * @type {string}\n * @memberof NewAssetMetadataEntry\n */\n key: string;\n /**\n * \n * @type {Datatype}\n * @memberof NewAssetMetadataEntry\n */\n type: Datatype;\n /**\n * \n * @type {number}\n * @memberof NewAssetMetadataEntry\n */\n valueNum?: number;\n /**\n * \n * @type {string}\n * @memberof NewAssetMetadataEntry\n */\n value: string;\n /**\n * \n * @type {boolean}\n * @memberof NewAssetMetadataEntry\n */\n del?: boolean;\n}\n/**\n * Copied notebook uri and information\n * @export\n * @interface NotebookCopied\n */\nexport interface NotebookCopied {\n /**\n * output location of the TileDB Notebook\n * @type {string}\n * @memberof NotebookCopied\n */\n output_uri?: string;\n /**\n * name of the notebook created\n * @type {string}\n * @memberof NotebookCopied\n */\n name?: string;\n /**\n * namespace copied to\n * @type {string}\n * @memberof NotebookCopied\n */\n namespace?: string;\n /**\n * unique ID of the copied notebook\n * @type {string}\n * @memberof NotebookCopied\n */\n id: string;\n}\n/**\n * Output information required to copy a notebook\n * @export\n * @interface NotebookCopy\n */\nexport interface NotebookCopy {\n /**\n * output location of the TileDB File\n * @type {string}\n * @memberof NotebookCopy\n */\n output_uri?: string;\n /**\n * name to set for registered notebook\n * @type {string}\n * @memberof NotebookCopy\n */\n name?: string;\n /**\n * namespace to copy to\n * @type {string}\n * @memberof NotebookCopy\n */\n namespace?: string;\n}\n/**\n * A user-favorite notebook item\n * @export\n * @interface NotebookFavorite\n */\nexport interface NotebookFavorite {\n /**\n * unique UUID of the notebook\n * @type {string}\n * @memberof NotebookFavorite\n */\n notebook_uuid?: string;\n /**\n * the namespace of the notebook\n * @type {string}\n * @memberof NotebookFavorite\n */\n namespace?: string;\n /**\n * the name of the notebook\n * @type {string}\n * @memberof NotebookFavorite\n */\n name?: string;\n}\n/**\n * Object including notebook favorites and pagination metadata\n * @export\n * @interface NotebookFavoritesData\n */\nexport interface NotebookFavoritesData {\n /**\n * List of notebook infos\n * @type {Array<ArrayInfo>}\n * @memberof NotebookFavoritesData\n */\n notebooks?: Array<ArrayInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof NotebookFavoritesData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Size of notebook image\n * @export\n * @enum {string}\n */\nexport enum NotebookSize {\n Small = 'small',\n Large = 'large',\n _32xlarge = '32xlarge',\n GpuP2 = 'gpu_p2'\n}\n\n/**\n * Status details of a notebook server\n * @export\n * @interface NotebookStatus\n */\nexport interface NotebookStatus {\n /**\n * namespace of notebook\n * @type {string}\n * @memberof NotebookStatus\n */\n namespace: string;\n /**\n * the region the notebook is currently running\n * @type {string}\n * @memberof NotebookStatus\n */\n region?: string;\n /**\n * duration notebook has been running in seconds\n * @type {number}\n * @memberof NotebookStatus\n */\n uptime: number;\n /**\n * current cpu usage in millicpu\n * @type {number}\n * @memberof NotebookStatus\n */\n cpu_usage: number;\n /**\n * gpu usage in milligpu\n * @type {number}\n * @memberof NotebookStatus\n */\n gpu_usage?: number;\n /**\n * memory usage in bytes\n * @type {number}\n * @memberof NotebookStatus\n */\n memory_usage: number;\n /**\n * gpu limit in milligpu\n * @type {number}\n * @memberof NotebookStatus\n */\n gpu_limit?: number;\n /**\n * memory allocated to notebook server in bytes\n * @type {number}\n * @memberof NotebookStatus\n */\n memory_limit: number;\n /**\n * storage usage in bytes\n * @type {number}\n * @memberof NotebookStatus\n */\n storage_usage?: number;\n /**\n * storage allocated to notebook server in bytes\n * @type {number}\n * @memberof NotebookStatus\n */\n storage_limit?: number;\n /**\n * millicpu allocated to notebook server\n * @type {number}\n * @memberof NotebookStatus\n */\n cpu_count: number;\n /**\n * cost in USD for the current notebook session\n * @type {number}\n * @memberof NotebookStatus\n */\n cost?: number | null;\n /**\n * \n * @type {PodStatus}\n * @memberof NotebookStatus\n */\n pod_status?: PodStatus;\n}\n/**\n * Type of notebook image\n * @export\n * @enum {string}\n */\nexport enum NotebookType {\n BasicDataScience = 'basic_data_science',\n Geospatial = 'geospatial',\n Genomics = 'genomics'\n}\n\n/**\n * Uploaded notebook name and information\n * @export\n * @interface NotebookUploaded\n */\nexport interface NotebookUploaded {\n /**\n * output location of the TileDB Notebook\n * @type {string}\n * @memberof NotebookUploaded\n */\n output_uri: string;\n /**\n * name of the notebook uploaded\n * @type {string}\n * @memberof NotebookUploaded\n */\n name: string;\n /**\n * unique ID of the uploaded notebook\n * @type {string}\n * @memberof NotebookUploaded\n */\n id: string;\n}\n/**\n * Notification for a given namespace\n * @export\n * @interface Notification\n */\nexport interface Notification {\n /**\n * Unique ID of the notification\n * @type {string}\n * @memberof Notification\n */\n id: string;\n /**\n * Time when notification was created (rfc3339)\n * @type {string}\n * @memberof Notification\n */\n created_at: string;\n /**\n * \n * @type {NotificationStatus}\n * @memberof Notification\n */\n status: NotificationStatus;\n /**\n * \n * @type {NotificationType}\n * @memberof Notification\n */\n type: NotificationType;\n /**\n * \n * @type {NotificationEvent}\n * @memberof Notification\n */\n notification_event: NotificationEvent;\n}\n/**\n * Object including a notification event\n * @export\n * @interface NotificationEvent\n */\nexport interface NotificationEvent {\n /**\n * \n * @type {InvitationEvent}\n * @memberof NotificationEvent\n */\n invitation?: InvitationEvent;\n /**\n * \n * @type {TaskGraphEvent}\n * @memberof NotificationEvent\n */\n taskgraph?: TaskGraphEvent;\n}\n/**\n * Object including list of notifications and pagination metadata\n * @export\n * @interface NotificationListResponse\n */\nexport interface NotificationListResponse {\n /**\n * List of notifications\n * @type {Array<Notification>}\n * @memberof NotificationListResponse\n */\n notifications?: Array<Notification>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof NotificationListResponse\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Status of the notification (read/unread)\n * @export\n * @enum {string}\n */\nexport enum NotificationStatus {\n Read = 'read',\n Unread = 'unread'\n}\n\n/**\n * Request body for changing the status of invitations\n * @export\n * @interface NotificationStatusChange\n */\nexport interface NotificationStatusChange {\n /**\n * \n * @type {NotificationStatus}\n * @memberof NotificationStatusChange\n */\n status?: NotificationStatus;\n /**\n * The notification ids to be changed\n * @type {Array<string>}\n * @memberof NotificationStatusChange\n */\n notifications?: Array<string>;\n}\n/**\n * type of the notification\n * @export\n * @enum {string}\n */\nexport enum NotificationType {\n Invitation = 'invitation',\n Taskgraph = 'taskgraph'\n}\n\n/**\n * redirect object for auth\n * @export\n * @interface OAuth2ConsentDetails\n */\nexport interface OAuth2ConsentDetails {\n /**\n * User accepts scopes included\n * @type {boolean}\n * @memberof OAuth2ConsentDetails\n */\n accept?: boolean;\n /**\n * Website requesting scope access\n * @type {string}\n * @memberof OAuth2ConsentDetails\n */\n client_id?: string;\n /**\n * scopes to consent user for\n * @type {Array<string>}\n * @memberof OAuth2ConsentDetails\n */\n scopes?: Array<string>;\n /**\n * scopes audience\n * @type {Array<string>}\n * @memberof OAuth2ConsentDetails\n */\n access_token_audience?: Array<string>;\n /**\n * url to redirect user to\n * @type {string}\n * @memberof OAuth2ConsentDetails\n */\n redirect_to?: string;\n}\n/**\n * redirect object for auth\n * @export\n * @interface OAuth2Redirect\n */\nexport interface OAuth2Redirect {\n /**\n * url to redirect user to\n * @type {string}\n * @memberof OAuth2Redirect\n */\n redirect_to: string;\n}\n/**\n * User sign in with okta\n * @export\n * @interface OktaSignIn\n */\nexport interface OktaSignIn {\n /**\n * okta\\'s redirect code param\n * @type {string}\n * @memberof OktaSignIn\n */\n code: string;\n /**\n * okta\\'s redirect url param\n * @type {string}\n * @memberof OktaSignIn\n */\n redirect_url: string;\n /**\n * okta\\'s state param\n * @type {string}\n * @memberof OktaSignIn\n */\n state: string;\n /**\n * flag to create a token with expiration of 30 days, default is false\n * @type {string}\n * @memberof OktaSignIn\n */\n remember_me?: string;\n}\n/**\n * List of values that OnboardingItem can take.\n * @export\n * @enum {string}\n */\nexport enum OnboardingItem {\n ThemeSelection = 'theme_selection',\n ProfileInfo = 'profile_info',\n ClaimCredits = 'claim_credits',\n CloudStorage = 'cloud_storage',\n RootPath = 'root_path',\n Intro = 'intro',\n BasicTour = 'basic_tour',\n SkipUserOnboarding = 'skip_user_onboarding',\n AddAsset = 'add_asset',\n LaunchNotebook = 'launch_notebook',\n IndicateFinishUserOnboarding = 'indicate_finish_user_onboarding',\n OrganizationBasicTour = 'organization_basic_tour',\n IndicateFinishOrgOnboarding = 'indicate_finish_org_onboarding',\n SkipOrganizationOnboarding = 'skip_organization_onboarding'\n}\n\n/**\n * user\\'s Onboarding items\n * @export\n * @interface OnboardingItems\n */\nexport interface OnboardingItems {\n /**\n * List of Onboarding items\n * @type {Array<OnboardingItem>}\n * @memberof OnboardingItems\n */\n entries?: Array<OnboardingItem>;\n}\n/**\n * namespace\\'s Onboarding state\n * @export\n * @interface OnboardingState\n */\nexport interface OnboardingState {\n /**\n * The existence of cloud storage settings\n * @type {boolean}\n * @memberof OnboardingState\n */\n cloud_storage_settings?: boolean;\n /**\n * The existence of at least one registered asset\n * @type {boolean}\n * @memberof OnboardingState\n */\n registered_asset?: boolean;\n /**\n * The existence of at least one extra member in the organization (besides the owner)\n * @type {boolean}\n * @memberof OnboardingState\n */\n organization_members?: boolean;\n}\n/**\n * Organization\n * @export\n * @interface Organization\n */\nexport interface Organization {\n /**\n * unique id of organization\n * @type {string}\n * @memberof Organization\n */\n id: string;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof Organization\n */\n role: OrganizationRoles;\n /**\n * organization name must be unique\n * @type {string}\n * @memberof Organization\n */\n name: string;\n /**\n * Datetime organization was created in UTC\n * @type {string}\n * @memberof Organization\n */\n created_at: string;\n /**\n * Datetime organization was updated in UTC\n * @type {string}\n * @memberof Organization\n */\n updated_at: string;\n /**\n * Organization logo\n * @type {string}\n * @memberof Organization\n */\n logo?: string;\n /**\n * Organization description\n * @type {string}\n * @memberof Organization\n */\n description: string | null;\n /**\n * \n * @type {Array<OrganizationUser>}\n * @memberof Organization\n */\n users: Array<OrganizationUser>;\n /**\n * list of actions user is allowed to do on this organization\n * @type {Array<NamespaceActions>}\n * @memberof Organization\n */\n allowed_actions?: Array<NamespaceActions>;\n /**\n * A notice that the user has an unpaid subscription\n * @type {boolean}\n * @memberof Organization\n */\n unpaid_subscription: boolean;\n /**\n * number of registered arrays for this organization\n * @type {number}\n * @memberof Organization\n */\n num_of_arrays: number;\n /**\n * Denotes that the organization is able to apply pricing to arrays by means of Stripe Connect\n * @type {boolean}\n * @memberof Organization\n */\n stripe_connect: boolean;\n /**\n * default s3 path to store newly created notebooks\n * @type {string}\n * @memberof Organization\n */\n default_s3_path?: string;\n /**\n * Default s3 path credentials name is the credentials name to use along with default_s3_path\n * @type {string}\n * @memberof Organization\n */\n default_s3_path_credentials_name?: string;\n /**\n * Beta features that the organization has access to\n * @type {Array<EnabledFeature>}\n * @memberof Organization\n */\n enabled_features?: Array<EnabledFeature>;\n /**\n * \n * @type {AssetLocations}\n * @memberof Organization\n */\n asset_locations?: AssetLocations;\n /**\n * A AWS Role that will be first assumed before assuming the organization\\'s AWS Role. Visible to owners and admins. \n * @type {string}\n * @memberof Organization\n */\n assume_role_arn?: string;\n}\n/**\n * Data to create a new organization\n * @export\n * @interface OrganizationCreateParams\n */\nexport interface OrganizationCreateParams {\n /**\n * organization name must be unique\n * @type {string}\n * @memberof OrganizationCreateParams\n */\n name: string;\n /**\n * Organization logo\n * @type {string}\n * @memberof OrganizationCreateParams\n */\n logo?: string;\n}\n/**\n * role user has in organization\n * @export\n * @enum {string}\n */\nexport enum OrganizationRoles {\n Owner = 'owner',\n Admin = 'admin',\n ReadWrite = 'read_write',\n ReadWriteDelete = 'read_write_delete',\n ReadOnly = 'read_only'\n}\n\n/**\n * Organization values that can be updated by the user\n * @export\n * @interface OrganizationUpdateParams\n */\nexport interface OrganizationUpdateParams {\n /**\n * organization name must be unique\n * @type {string}\n * @memberof OrganizationUpdateParams\n */\n name?: string;\n /**\n * Organization logo\n * @type {string}\n * @memberof OrganizationUpdateParams\n */\n logo?: string;\n /**\n * Organization description\n * @type {string}\n * @memberof OrganizationUpdateParams\n */\n description?: string;\n /**\n * default s3 path to store newly created notebooks\n * @type {string}\n * @memberof OrganizationUpdateParams\n */\n default_s3_path?: string;\n /**\n * Default s3 path credentials name is the credentials name to use along with default_s3_path\n * @type {string}\n * @memberof OrganizationUpdateParams\n */\n default_s3_path_credentials_name?: string;\n /**\n * \n * @type {AssetLocations}\n * @memberof OrganizationUpdateParams\n */\n asset_locations?: AssetLocations;\n}\n/**\n * user in an organization\n * @export\n * @interface OrganizationUser\n */\nexport interface OrganizationUser {\n /**\n * unique ID of user\n * @type {string}\n * @memberof OrganizationUser\n */\n user_id: string;\n /**\n * unique ID of organization\n * @type {string}\n * @memberof OrganizationUser\n */\n organization_id: string;\n /**\n * username for user\n * @type {string}\n * @memberof OrganizationUser\n */\n username: string;\n /**\n * full name of the user; available to organization admins\n * @type {string}\n * @memberof OrganizationUser\n */\n user_full_name?: string;\n /**\n * email address of the user; available to organization admins\n * @type {string}\n * @memberof OrganizationUser\n */\n user_email?: string;\n /**\n * name of organization\n * @type {string}\n * @memberof OrganizationUser\n */\n organization_name: string;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof OrganizationUser\n */\n role: OrganizationRoles;\n /**\n * list of actions user is allowed to do on this organization\n * @type {Array<NamespaceActions>}\n * @memberof OrganizationUser\n */\n allowed_actions?: Array<NamespaceActions>;\n}\n/**\n * overview visible data\n * @export\n * @interface OverviewData\n */\nexport interface OverviewData {\n /**\n * current account balance, if its negatives there is credits left\n * @type {number}\n * @memberof OverviewData\n */\n account_balance: number;\n /**\n * last accessed arrays by current user\n * @type {Array<ArrayInfo>}\n * @memberof OverviewData\n */\n last_accessed_arrays: Array<ArrayInfo>;\n /**\n * last accessed notebooks by current user\n * @type {Array<ArrayInfo>}\n * @memberof OverviewData\n */\n last_accessed_notebooks?: Array<ArrayInfo>;\n /**\n * last accessed dashboards by current user\n * @type {Array<ArrayInfo>}\n * @memberof OverviewData\n */\n last_accessed_dashboards?: Array<ArrayInfo>;\n /**\n * last accessed udfs by current user\n * @type {Array<ArrayInfo>}\n * @memberof OverviewData\n */\n last_accessed_udfs?: Array<ArrayInfo>;\n /**\n * last accessed ml models by current user\n * @type {Array<ArrayInfo>}\n * @memberof OverviewData\n */\n last_accessed_ml_models?: Array<ArrayInfo>;\n /**\n * last accessed files by current user\n * @type {Array<ArrayInfo>}\n * @memberof OverviewData\n */\n last_accessed_files?: Array<ArrayInfo>;\n /**\n * last accessed task graphs by current user\n * @type {Array<ArrayInfo>}\n * @memberof OverviewData\n */\n last_accessed_taskgraphs?: Array<ArrayInfo>;\n /**\n * \n * @type {AccountOverview}\n * @memberof OverviewData\n */\n account_overview?: AccountOverview;\n}\n/**\n * Ownership level of assets\n * @export\n * @enum {string}\n */\nexport enum OwnershipLevel {\n Owned = 'owned',\n Shared = 'shared',\n Public = 'public'\n}\n\n/**\n * \n * @export\n * @interface PaginationMetadata\n */\nexport interface PaginationMetadata {\n /**\n * pagination offset\n * @type {number}\n * @memberof PaginationMetadata\n */\n page: number;\n /**\n * pagination limit\n * @type {number}\n * @memberof PaginationMetadata\n */\n per_page: number;\n /**\n * number of total pages with current limit\n * @type {number}\n * @memberof PaginationMetadata\n */\n total_pages: number;\n /**\n * number of total available items\n * @type {number}\n * @memberof PaginationMetadata\n */\n total_items: number;\n}\n/**\n * Password to update\n * @export\n * @interface PasswordReset\n */\nexport interface PasswordReset {\n /**\n * reset password api token for user\n * @type {string}\n * @memberof PasswordReset\n */\n token?: string;\n /**\n * password\n * @type {string}\n * @memberof PasswordReset\n */\n password?: string;\n}\n/**\n * User setting up credit card details\n * @export\n * @interface PaymentMethod\n */\nexport interface PaymentMethod {\n /**\n * Billing Email\n * @type {string}\n * @memberof PaymentMethod\n */\n email: string;\n /**\n * Stripe one use token from element card\n * @type {string}\n * @memberof PaymentMethod\n */\n token?: string;\n /**\n * Billing Address Line1\n * @type {string}\n * @memberof PaymentMethod\n */\n address1: string;\n /**\n * Billing Address Line2\n * @type {string}\n * @memberof PaymentMethod\n */\n address2?: string;\n /**\n * Billing City\n * @type {string}\n * @memberof PaymentMethod\n */\n city: string;\n /**\n * Billing State\n * @type {string}\n * @memberof PaymentMethod\n */\n state: string;\n /**\n * Billing Country\n * @type {string}\n * @memberof PaymentMethod\n */\n country: string;\n /**\n * Billing ZipCode\n * @type {string}\n * @memberof PaymentMethod\n */\n zip_code: string;\n /**\n * Last 4 of CC on file\n * @type {string}\n * @memberof PaymentMethod\n */\n cc_last_4?: string;\n /**\n * Billing name\n * @type {string}\n * @memberof PaymentMethod\n */\n name: string;\n /**\n * type of cc\n * @type {string}\n * @memberof PaymentMethod\n */\n cc_brand?: string;\n /**\n * Free credits given to the user\n * @type {number}\n * @memberof PaymentMethod\n */\n sign_up_credits?: number;\n /**\n * Indicates if customer is a trusted customer\n * @type {boolean}\n * @memberof PaymentMethod\n */\n is_trusted_customer?: boolean;\n}\n/**\n * The code sent back to the backend allowing it to verify an OpenID Connect login and create a user etc. \n * @export\n * @interface PerDomainLoginCode\n */\nexport interface PerDomainLoginCode {\n /**\n * The `code` parameter returned by the OpenID Connect server.\n * @type {string}\n * @memberof PerDomainLoginCode\n */\n code: string;\n /**\n * The claimed domain that the user is logging into.\n * @type {string}\n * @memberof PerDomainLoginCode\n */\n domain: string;\n /**\n * The `redirect_url` parameter that was sent to the OpenID Connect server to redirect the user back to TileDB Cloud to complete login.\n * @type {string}\n * @memberof PerDomainLoginCode\n */\n redirect_url: string;\n}\n/**\n * The data needed to send a user to an OpenID Connect login page.\n * @export\n * @interface PerDomainOIDCEndpoint\n */\nexport interface PerDomainOIDCEndpoint {\n /**\n * The claimed domain that the user is logging into.\n * @type {string}\n * @memberof PerDomainOIDCEndpoint\n */\n domain: string;\n /**\n * The OpenID Connect authorization endpoint URL. Used to construct the URL we send the user to for SSO. \n * @type {string}\n * @memberof PerDomainOIDCEndpoint\n */\n authorization_endpoint: string;\n /**\n * The OpenID Connect Client ID.\n * @type {string}\n * @memberof PerDomainOIDCEndpoint\n */\n client_id: string;\n /**\n * The OpenID Connect scopes we request.\n * @type {Array<string>}\n * @memberof PerDomainOIDCEndpoint\n */\n scopes: Array<string>;\n}\n/**\n * The code sent back to the backend allowing it to verify an OpenID Connect login and create a user etc. \n * @export\n * @interface PerDomainSignIn\n */\nexport interface PerDomainSignIn {\n /**\n * The `code` parameter returned by the OpenID Connect server.\n * @type {string}\n * @memberof PerDomainSignIn\n */\n code?: string;\n /**\n * The claimed domain that the user is logging into.\n * @type {string}\n * @memberof PerDomainSignIn\n */\n domain?: string;\n /**\n * The `redirect_url` parameter that was sent to the OpenID Connect server to redirect the user back to TileDB Cloud to complete login.\n * @type {string}\n * @memberof PerDomainSignIn\n */\n redirect_url?: string;\n}\n/**\n * List of all available pod statuses\n * @export\n * @enum {string}\n */\nexport enum PodStatus {\n TERMINATING = 'TERMINATING',\n RUNNING = 'RUNNING',\n LAUNCHING = 'LAUNCHING'\n}\n\n/**\n * Parameters for ingesting point cloud data. See tiledb.cloud.geospatial.ingest for details. \n * @export\n * @interface PointCloudIngestionRequest\n */\nexport interface PointCloudIngestionRequest {\n /**\n * dataset URI\n * @type {string}\n * @memberof PointCloudIngestionRequest\n */\n dataset_uri?: string;\n /**\n * The name of the ARN credentials to use to read source data and write to destination.\n * @type {string}\n * @memberof PointCloudIngestionRequest\n */\n access_credentials_name?: string;\n /**\n * The name of the ingested data.\n * @type {string}\n * @memberof PointCloudIngestionRequest\n */\n register_name?: string;\n /**\n * The URI to search.\n * @type {string}\n * @memberof PointCloudIngestionRequest\n */\n search_uri?: string;\n /**\n * What pattern to search in search_uri.\n * @type {string}\n * @memberof PointCloudIngestionRequest\n */\n pattern?: string;\n /**\n * What pattern to ignore in search_uri.\n * @type {string}\n * @memberof PointCloudIngestionRequest\n */\n ignore?: string;\n /**\n * Verbose ingest or not.\n * @type {boolean}\n * @memberof PointCloudIngestionRequest\n */\n verbose?: boolean;\n /**\n * Enables trace logging\n * @type {boolean}\n * @memberof PointCloudIngestionRequest\n */\n trace?: boolean;\n}\n/**\n * preview for different array backed files\n * @export\n * @interface Preview\n */\nexport interface Preview {\n /**\n * previewable contents\n * @type {string}\n * @memberof Preview\n */\n value?: string;\n /**\n * language type used for the preview\n * @type {string}\n * @memberof Preview\n */\n language?: string;\n /**\n * the mime type of the file\n * @type {string}\n * @memberof Preview\n */\n mimeType?: string | null;\n /**\n * timestamp (epoch milliseconds) the preview corresponds to\n * @type {number}\n * @memberof Preview\n */\n end_timestamp?: number | null;\n /**\n * timestamp the preview corresponds to in RFC3339\n * @type {string}\n * @memberof Preview\n */\n EndTimestampRFC3339?: string;\n}\n/**\n * Pricing created by converting an array to product\n * @export\n * @interface Pricing\n */\nexport interface Pricing {\n /**\n * Unique id of plan as defined by Stripe\n * @type {string}\n * @memberof Pricing\n */\n id: string;\n /**\n * Unique id of registered array\n * @type {string}\n * @memberof Pricing\n */\n array_uuid: string;\n /**\n * Name of pricing\n * @type {string}\n * @memberof Pricing\n */\n pricing_name: string;\n /**\n * \n * @type {PricingType}\n * @memberof Pricing\n */\n pricing_type: PricingType;\n /**\n * Name of product\n * @type {string}\n * @memberof Pricing\n */\n product_name: string;\n /**\n * Extra information about a product which will appear on your customer’s credit card statement\n * @type {string}\n * @memberof Pricing\n */\n product_statement_descriptor: string;\n /**\n * \n * @type {PricingUnitLabel}\n * @memberof Pricing\n */\n product_unit_label: PricingUnitLabel;\n /**\n * \n * @type {PricingCurrency}\n * @memberof Pricing\n */\n currency: PricingCurrency;\n /**\n * \n * @type {PricingAggregateUsage}\n * @memberof Pricing\n */\n aggregate_usage: PricingAggregateUsage;\n /**\n * \n * @type {PricingInterval}\n * @memberof Pricing\n */\n interval: PricingInterval;\n /**\n * Group of n product unit labels\n * @type {number}\n * @memberof Pricing\n */\n divided_by: number;\n /**\n * Price in cents (decimal) per unitlabel\n * @type {number}\n * @memberof Pricing\n */\n charge: number;\n /**\n * If pricing is activated\n * @type {boolean}\n * @memberof Pricing\n */\n activated: boolean;\n}\n/**\n * Specifies a usage aggregation strategy for pricings of usage_type=metered\n * @export\n * @enum {string}\n */\nexport enum PricingAggregateUsage {\n Sum = 'sum'\n}\n\n/**\n * Currency of pricing\n * @export\n * @enum {string}\n */\nexport enum PricingCurrency {\n USD = 'USD'\n}\n\n/**\n * Pricing info created\n * @export\n * @interface PricingInfo\n */\nexport interface PricingInfo {\n /**\n * Price in cents (decimal) per unitlabel\n * @type {number}\n * @memberof PricingInfo\n */\n egress_charge?: number;\n /**\n * Price in cents (decimal) per unitlabel\n * @type {number}\n * @memberof PricingInfo\n */\n access_charge?: number;\n}\n/**\n * Interval for pricing\n * @export\n * @enum {string}\n */\nexport enum PricingInterval {\n Month = 'month'\n}\n\n/**\n * Pricing types\n * @export\n * @enum {string}\n */\nexport enum PricingType {\n Egress = 'egress',\n Access = 'access'\n}\n\n/**\n * Unit label\n * @export\n * @enum {string}\n */\nexport enum PricingUnitLabel {\n Byte = 'byte',\n Second = 'second'\n}\n\n/**\n * Level of access the user has to the product.\n * @export\n * @enum {string}\n */\nexport enum ProductTier {\n Guest = 'guest',\n Free = 'free',\n Paid = 'paid'\n}\n\n/**\n * Query parameter to get array metadatas\n * @export\n * @enum {string}\n */\nexport enum PublicShareFilter {\n Exclude = 'exclude',\n Only = 'only'\n}\n\n/**\n * Query returning results as json\n * @export\n * @interface QueryJson\n */\nexport interface QueryJson {\n /**\n * \n * @type {QueryRanges}\n * @memberof QueryJson\n */\n query_ranges?: QueryRanges;\n /**\n * List of fields to return data from, empty means return data for all fields\n * @type {Array<string>}\n * @memberof QueryJson\n */\n fields?: Array<string>;\n}\n/**\n * Subarray bounds to query\n * @export\n * @interface QueryRanges\n */\nexport interface QueryRanges {\n /**\n * \n * @type {Layout}\n * @memberof QueryRanges\n */\n layout?: Layout;\n /**\n * List of ranges,\n * @type {Array<Array<number>>}\n * @memberof QueryRanges\n */\n ranges?: Array<Array<number>>;\n}\n/**\n * Type of query\n * @export\n * @enum {string}\n */\nexport enum QueryType {\n READ = 'READ',\n WRITE = 'WRITE'\n}\n\n/**\n * The structure and metadata of a task graph that can be stored on TileDB Cloud and executed by users who have access to it. \n * @export\n * @interface RegisteredTaskGraph\n */\nexport interface RegisteredTaskGraph {\n /**\n * A server-assigned unique ID for the UDF, in UUID format.\n * @type {string}\n * @memberof RegisteredTaskGraph\n */\n uuid?: string;\n /**\n * The namespace that owns this task graph log.\n * @type {string}\n * @memberof RegisteredTaskGraph\n */\n namespace?: string;\n /**\n * The name of this graph, to appear in URLs. Must be unique per-namespace. \n * @type {string}\n * @memberof RegisteredTaskGraph\n */\n name?: string;\n /**\n * Documentation for the task graph, in Markdown format.\n * @type {string}\n * @memberof RegisteredTaskGraph\n */\n readme?: string;\n /**\n * SPDX license identifier.\n * @type {string}\n * @memberof RegisteredTaskGraph\n */\n license_id?: string | null;\n /**\n * Full text of the license.\n * @type {string}\n * @memberof RegisteredTaskGraph\n */\n license_text?: string | null;\n /**\n * Optional tags to classify the graph.\n * @type {Array<string>}\n * @memberof RegisteredTaskGraph\n */\n tags?: Array<string>;\n /**\n * The structure of the graph, in the form of the nodes that make it up. As with `TaskGraphLog`, nodes must topologically sorted, so that any node appears after all the nodes it depends on. \n * @type {Array<TaskGraphNode>}\n * @memberof RegisteredTaskGraph\n */\n nodes?: Array<TaskGraphNode>;\n}\n/**\n * Results type\n * @export\n * @enum {string}\n */\nexport enum ResultFormat {\n Native = 'native',\n Json = 'json',\n Arrow = 'arrow'\n}\n\n/**\n * RetryPolicy is a policy of node statuses that will be retried\n * @export\n * @enum {string}\n */\nexport enum RetryPolicy {\n Always = 'Always',\n OnFailure = 'OnFailure',\n OnError = 'OnError',\n OnTransientError = 'OnTransientError'\n}\n\n/**\n * RetryStrategy provides controls on how to retry a taskgraph node\n * @export\n * @interface RetryStrategy\n */\nexport interface RetryStrategy {\n /**\n * \n * @type {Backoff}\n * @memberof RetryStrategy\n */\n backoff?: Backoff;\n /**\n * Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not be retried and the retry strategy will be ignored\n * @type {string}\n * @memberof RetryStrategy\n */\n expression?: string;\n /**\n * Limit is the maximum number of retry attempts when retrying a container. It does not include the original container; the maximum number of total attempts will be `limit + 1`.\n * @type {number}\n * @memberof RetryStrategy\n */\n limit?: number;\n /**\n * \n * @type {RetryPolicy}\n * @memberof RetryStrategy\n */\n retryPolicy?: RetryPolicy;\n}\n/**\n * Parameters for ingesting SOMA data. See tiledb.cloud.soma.ingest.ingest_h5ad for details. \n * @export\n * @interface SOMAIngestionRequest\n */\nexport interface SOMAIngestionRequest {\n /**\n * The URI of the H5AD file to read from. This file is read using TileDB VFS, so any path supported (and accessible) will work.\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n input_uri: string;\n /**\n * The output URI to write to.\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n output_uri: string;\n /**\n * The output URI to write to.\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n measurement_name: string;\n /**\n * The name of the ARN credentials to use to read source data and write to destination.\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n access_credentials_name?: string;\n /**\n * What pattern to search in input_uri.\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n pattern?: string;\n /**\n * The memory that will be needed in GiB.\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n memory?: string;\n /**\n * The name of the ingested data.\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n register_name?: string;\n /**\n * The number of cpu cores.\n * @type {number}\n * @memberof SOMAIngestionRequest\n */\n cpu?: number;\n /**\n * Verbose ingest or not.\n * @type {boolean}\n * @memberof SOMAIngestionRequest\n */\n verbose?: boolean;\n /**\n * One of the ingest modes supported by tiledbsoma.io.read_h5ad. (write, resume, schema_only)\n * @type {string}\n * @memberof SOMAIngestionRequest\n */\n ingest_mode?: string;\n}\n/**\n * The information used to set up a single-sign on connection to a customer domain. \n * @export\n * @interface SSODomainConfig\n */\nexport interface SSODomainConfig {\n /**\n * A server-generated ID for the configuration.\n * @type {string}\n * @memberof SSODomainConfig\n */\n uuid?: string;\n /**\n * The fully-qualified domain (but with no trailing dot) to connect for single sign-on. This may not be changed after creation. \n * @type {string}\n * @memberof SSODomainConfig\n */\n domain?: string | null;\n /**\n * The URL of the OpenID Connect issuer that can be used to authenticate this domain\\'s users. The prefix where the `/.well-known/openid-configuration` file can be found; usually without a trailing slash. \n * @type {string}\n * @memberof SSODomainConfig\n */\n oidc_issuer?: string;\n /**\n * The OpenID Connect client ID for this SSO instance.\n * @type {string}\n * @memberof SSODomainConfig\n */\n oidc_client_id?: string;\n /**\n * The OpenID Connect client secret for this SSO instance.\n * @type {string}\n * @memberof SSODomainConfig\n */\n oidc_client_secret?: string;\n /**\n * \n * @type {SSODomainSetup}\n * @memberof SSODomainConfig\n */\n domain_setup?: SSODomainSetup;\n /**\n * \n * @type {DomainVerificationStatus}\n * @memberof SSODomainConfig\n */\n verification_status?: DomainVerificationStatus;\n /**\n * A list of the results of recent attempts to verify this domain. \n * @type {Array<DomainCheckResult>}\n * @memberof SSODomainConfig\n */\n check_results?: Array<DomainCheckResult>;\n}\n/**\n * The response to a request for the list of domain claims associated with a particular organization. \n * @export\n * @interface SSODomainConfigResponse\n */\nexport interface SSODomainConfigResponse {\n /**\n * \n * @type {Array<SSODomainConfig>}\n * @memberof SSODomainConfigResponse\n */\n domain_configs?: Array<SSODomainConfig>;\n}\n/**\n * Configuration settings to verify ownership of a given domain. At least one of these must be completed enable user login from the domain. \n * @export\n * @interface SSODomainSetup\n */\nexport interface SSODomainSetup {\n /**\n * a DNS TXT record to set on the domain to claim.\n * @type {string}\n * @memberof SSODomainSetup\n */\n txt?: string;\n /**\n * a DNS name to set a CNAME record on\n * @type {string}\n * @memberof SSODomainSetup\n */\n cname_src?: string;\n /**\n * the CNAME target of `cname_src`.\n * @type {string}\n * @memberof SSODomainSetup\n */\n cname_dst?: string;\n}\n/**\n * The path at which a given asset will be stored, and the credentials used to access that asset. \n * @export\n * @interface StorageLocation\n */\nexport interface StorageLocation {\n /**\n * The path to store this asset type. If unset, a suffix of the user\\'s `default_s3_path` is used. When updating, explicitly set to `\\\"\\\"`, the empty string, to clear this path; leaving it `null` (or absent) will leave the path unchanged. \n * @type {string}\n * @memberof StorageLocation\n */\n path?: string | null;\n /**\n * The name of the credentials used to acess this storage path. If unset, the `default_s3_path_credentials_name` is used. When updating, explicitly set to `\\\"\\\"`, the empty string, to clear this name; leaving it `null` (or absent) will leave the name unchanged. \n * @type {string}\n * @memberof StorageLocation\n */\n credentials_name?: string | null;\n}\n/**\n * User setting up credit card details\n * @export\n * @interface StripeDetails\n */\nexport interface StripeDetails {\n /**\n * Billing Email\n * @type {string}\n * @memberof StripeDetails\n */\n email: string;\n /**\n * Stripe one use token from element card\n * @type {string}\n * @memberof StripeDetails\n */\n token?: string;\n /**\n * Billing Address Line1\n * @type {string}\n * @memberof StripeDetails\n */\n address1: string;\n /**\n * Billing Address Line2\n * @type {string}\n * @memberof StripeDetails\n */\n address2?: string;\n /**\n * Billing City\n * @type {string}\n * @memberof StripeDetails\n */\n city: string;\n /**\n * Billing State\n * @type {string}\n * @memberof StripeDetails\n */\n state: string;\n /**\n * Billing Country\n * @type {string}\n * @memberof StripeDetails\n */\n country: string;\n /**\n * Billing ZipCode\n * @type {string}\n * @memberof StripeDetails\n */\n zip_code: string;\n /**\n * Last 4 of CC on file\n * @type {string}\n * @memberof StripeDetails\n */\n cc_last_4?: string;\n /**\n * Billing name\n * @type {string}\n * @memberof StripeDetails\n */\n name: string;\n /**\n * type of cc\n * @type {string}\n * @memberof StripeDetails\n */\n cc_brand?: string;\n}\n/**\n * User sign in with stripe\n * @export\n * @interface StripeSignIn\n */\nexport interface StripeSignIn {\n /**\n * stripe\\'s user code\n * @type {string}\n * @memberof StripeSignIn\n */\n code: string;\n /**\n * a namespace ID, user or organization\n * @type {string}\n * @memberof StripeSignIn\n */\n state?: string;\n /**\n * flag to create a token with expiration of 30 days, default is false\n * @type {string}\n * @memberof StripeSignIn\n */\n remember_me?: string;\n}\n/**\n * Specifies that a node is an “input value”, allowing for parameterized task graphs. An input node may not depend upon any other nodes. \n * @export\n * @interface TGInputNodeData\n */\nexport interface TGInputNodeData {\n /**\n * An argument provided to a node. This is one of a direct value (i.e., a raw JSON value) or a `TGSentinel`. For example this Python value: {\\\"a\\\": [1, \\\"pipe\\\", range(30), None], \\\"b\\\": b\\\"bytes\\\"} is encoded thusly (with included comments): { // A dictionary with string keys is JSON-encodable. \\\"a\\\": [ // As is a list. 1, \\\"pipe\\\", { // A `range` is replaced with its pickle. \\\"__tdbudf__\\\": \\\"immediate\\\", \\\"format\\\": \\\"python_pickle\\\", \\\"base64_data\\\": \\\"gASVIAAAAAAAAACMCGJ1aWx0aW5zlIwFcmFuZ2WUk5RLAEseSwGHlFKULg==\\\" }, null ], \\\"b\\\": { // Raw binary data is encoded into base64. \\\"__tdbudf__\\\": \\\"immediate\\\" \\\"format\\\": \\\"bytes\\\", \\\"base64_data\\\": \\\"Ynl0ZXM=\\\" } } \n * @type {object}\n * @memberof TGInputNodeData\n */\n default_value?: object;\n /**\n * An annotation of what datatype this node is supposed to be. Conventionally, this is a Python-format type annotation, but it’s purely for documentation purposes and not validated. \n * @type {string}\n * @memberof TGInputNodeData\n */\n datatype?: string | null;\n}\n/**\n * A node specifying an SQL query to execute in TileDB Cloud. \n * @export\n * @interface TGSQLNodeData\n */\nexport interface TGSQLNodeData {\n /**\n * The commands to execute before running the query itself.\n * @type {Array<string>}\n * @memberof TGSQLNodeData\n */\n init_commands?: Array<string>;\n /**\n * The text of the SQL query to execute. Parameters are substituted in for `?`s, just as in a regular MariaDB query. \n * @type {string}\n * @memberof TGSQLNodeData\n */\n query?: string;\n /**\n * The parameters to substitute in for arguments in the `query`. Fixed-length. Arguments must be in JSON format. \n * @type {Array<object>}\n * @memberof TGSQLNodeData\n */\n parameters?: Array<object>;\n /**\n * \n * @type {ResultFormat}\n * @memberof TGSQLNodeData\n */\n result_format?: ResultFormat;\n}\n/**\n * A single argument to a UDF. This may represent a positional argument or a named argument, depending upon whether `name` is set. \n * @export\n * @interface TGUDFArgument\n */\nexport interface TGUDFArgument {\n /**\n * The name of the argument, if present.\n * @type {string}\n * @memberof TGUDFArgument\n */\n name?: string | null;\n /**\n * An argument provided to a node. This is one of a direct value (i.e., a raw JSON value) or a `TGSentinel`. For example this Python value: {\\\"a\\\": [1, \\\"pipe\\\", range(30), None], \\\"b\\\": b\\\"bytes\\\"} is encoded thusly (with included comments): { // A dictionary with string keys is JSON-encodable. \\\"a\\\": [ // As is a list. 1, \\\"pipe\\\", { // A `range` is replaced with its pickle. \\\"__tdbudf__\\\": \\\"immediate\\\", \\\"format\\\": \\\"python_pickle\\\", \\\"base64_data\\\": \\\"gASVIAAAAAAAAACMCGJ1aWx0aW5zlIwFcmFuZ2WUk5RLAEseSwGHlFKULg==\\\" }, null ], \\\"b\\\": { // Raw binary data is encoded into base64. \\\"__tdbudf__\\\": \\\"immediate\\\" \\\"format\\\": \\\"bytes\\\", \\\"base64_data\\\": \\\"Ynl0ZXM=\\\" } } \n * @type {object}\n * @memberof TGUDFArgument\n */\n value?: object;\n}\n/**\n * Metadata about the environment where we want to execute a UDF.\n * @export\n * @interface TGUDFEnvironment\n */\nexport interface TGUDFEnvironment {\n /**\n * \n * @type {UDFLanguage}\n * @memberof TGUDFEnvironment\n */\n language?: UDFLanguage;\n /**\n * The language version used to execute this UDF. Neither this nor `language` needs to be set for registered UDFs, since the language and version are stored server-side with the UDF itself. \n * @type {string}\n * @memberof TGUDFEnvironment\n */\n language_version?: string;\n /**\n * The name of the image to use for the execution environment. \n * @type {string}\n * @memberof TGUDFEnvironment\n */\n image_name?: string;\n /**\n * The resource class to use for the UDF execution. Resource classes define resource limits for memory and CPUs. If this is empty, then the UDF will execute in the standard resource class of the TileDB Cloud provider. \n * @type {string}\n * @memberof TGUDFEnvironment\n */\n resource_class?: string;\n /**\n * \n * @type {TGUDFEnvironmentResources}\n * @memberof TGUDFEnvironment\n */\n resources?: TGUDFEnvironmentResources;\n /**\n * A hint that, if possible, this function should be executed on the client side rather than on the server. Registered UDFs and functions which take arrays as inputs can never be executed client-side. If the client’s environment is incompatible, or the client does not support client-side execution, the function will be executed on the server. \n * @type {boolean}\n * @memberof TGUDFEnvironment\n */\n run_client_side?: boolean;\n}\n/**\n * The resources requested for this particular node. If resources are not specified resource_class is used, if it is not set the standard resource // defaults are used \n * @export\n * @interface TGUDFEnvironmentResources\n */\nexport interface TGUDFEnvironmentResources {\n /**\n * \n * @type {string}\n * @memberof TGUDFEnvironmentResources\n */\n cpu?: string;\n /**\n * \n * @type {string}\n * @memberof TGUDFEnvironmentResources\n */\n memory?: string;\n /**\n * \n * @type {number}\n * @memberof TGUDFEnvironmentResources\n */\n gpu?: number;\n}\n/**\n * A node specifying the execution of a user-defined function.\n * @export\n * @interface TGUDFNodeData\n */\nexport interface TGUDFNodeData {\n /**\n * If set, the name of the registered UDF to execute, in the format `namespace/name`. Either this or `executable_code` should be set, but not both. \n * @type {string}\n * @memberof TGUDFNodeData\n */\n registered_udf_name?: string | null;\n /**\n * If set, the base64 serialization of the code for this step, encoded in a language-specific format (e.g. Pickle for Python, serialization for R). \n * @type {string}\n * @memberof TGUDFNodeData\n */\n executable_code?: string | null;\n /**\n * Optionally, the source text for the code passed in `executable_code`. *For reference only; only the code in `executable_code` is actually executed.* This will be included in activity logs and may be useful for debugging. \n * @type {string}\n * @memberof TGUDFNodeData\n */\n source_text?: string;\n /**\n * \n * @type {TGUDFEnvironment}\n * @memberof TGUDFNodeData\n */\n environment?: TGUDFEnvironment;\n /**\n * The arguments to a UDF function. This encompasses both named and positional arguments. The format is designed to provide compatibility across languages like Python which have a fairly traditional split between positional arguments and named arguments, and languages like R which has a rather unique way of specifying arguments. For Python (and most other languages), all positional arguments will come before all named arguments (if any are present): // fn(arg1, arg2, arg3) [ {value: arg1}, {value: arg2}, {value: arg3}, ] // fn(arg1, arg2, n=kw1, a=kw2) [ {value: arg1}, {value: arg2}, {name: \\\"n\\\", value: kw1}, {name: \\\"a\\\", value: kw2}, ] // fn(kw=k1, only=k2) [ {name: \\\"kw\\\", value: k1}, {name: \\\"only\\\", value: k2}, ] However, in R, named and positional arguments may be intermixed freely: // fn(arg, n=kw1, arg2) [ {value: arg}, {name: \\\"n\\\", value: kw1}, {value: arg2}, ] \n * @type {Array<TGUDFArgument>}\n * @memberof TGUDFNodeData\n */\n arguments?: Array<TGUDFArgument>;\n}\n/**\n * Information about a task graph.\n * @export\n * @interface TaskGraph\n */\nexport interface TaskGraph {\n /**\n * The server-generated UUID of the task graph.\n * @type {string}\n * @memberof TaskGraph\n */\n uuid?: string;\n /**\n * The namespace that owns this task graph. When creating a task graph log, this is used as the namespace to create the log in; thereafter it is read-only. \n * @type {string}\n * @memberof TaskGraph\n */\n namespace?: string;\n /**\n * The name of the user who created this task graph log.\n * @type {string}\n * @memberof TaskGraph\n */\n created_by?: string;\n /**\n * A name for this task graph, displayed in the UI. Does not need to be unique. \n * @type {string}\n * @memberof TaskGraph\n */\n name?: string;\n /**\n * The date/time when this task graph was originally created. \n * @type {string}\n * @memberof TaskGraph\n */\n created_at?: string;\n /**\n * The structure of the graph. This is provided by the client when first setting up the task graph. This must be topographically sorted; that is, each node must appear after all nodes that it depends upon. \n * @type {Array<TaskGraphNode>}\n * @memberof TaskGraph\n */\n nodes?: Array<TaskGraphNode>;\n /**\n * Parallelism limits the max total parallel pods that can execute at the same time in a workflow. \n * @type {number}\n * @memberof TaskGraph\n */\n parallelism?: number | null;\n /**\n * \n * @type {RetryStrategy}\n * @memberof TaskGraph\n */\n retry_strategy?: RetryStrategy;\n /**\n * Duration in seconds relative to the workflow start time which the workflow is allowed to run before it gets terminated. \n * @type {number}\n * @memberof TaskGraph\n */\n deadline?: number | null;\n /**\n * \n * @type {TaskGraphType}\n * @memberof TaskGraph\n */\n task_graph_type?: TaskGraphType;\n}\n/**\n * actions a user can take on a UDF\n * @export\n * @enum {string}\n */\nexport enum TaskGraphActions {\n FetchTaskGraph = 'fetch_task_graph',\n ShareTaskGraph = 'share_task_graph'\n}\n\n/**\n * Event capturing a status change in a task graph\n * @export\n * @interface TaskGraphEvent\n */\nexport interface TaskGraphEvent {\n /**\n * The server-generated UUID of the task graph. This field holds the value of TaskGraphLog.UUID. \n * @type {string}\n * @memberof TaskGraphEvent\n */\n uuid: string;\n /**\n * The non-unique name of this task graph log, displayed in the UI. This field holds the value of TaskGraphLog.Name. \n * @type {string}\n * @memberof TaskGraphEvent\n */\n name: string;\n /**\n * The namespace name that owns this task graph log. This field holds the value of TaskGraphLog.Namespace. \n * @type {string}\n * @memberof TaskGraphEvent\n */\n namespace: string;\n /**\n * \n * @type {TaskGraphEventType}\n * @memberof TaskGraphEvent\n */\n task_graph_event_type: TaskGraphEventType;\n}\n/**\n * List of values that TaskGraphEvent can take These statuses are a subset of TaskGraphLogStatus, defined in openapi-v1.yaml. \n * @export\n * @enum {string}\n */\nexport enum TaskGraphEventType {\n Succeeded = 'succeeded',\n Failed = 'failed',\n Cancelled = 'cancelled'\n}\n\n/**\n * Logging information about the execution of a task graph.\n * @export\n * @interface TaskGraphLog\n */\nexport interface TaskGraphLog {\n /**\n * The server-generated UUID of the task graph.\n * @type {string}\n * @memberof TaskGraphLog\n */\n uuid?: string;\n /**\n * The namespace that owns this task graph log. When creating a task graph log, this is used as the namespace to create the log in; thereafter it is read-only. \n * @type {string}\n * @memberof TaskGraphLog\n */\n namespace?: string;\n /**\n * The name of the user who created this task graph log.\n * @type {string}\n * @memberof TaskGraphLog\n */\n created_by?: string;\n /**\n * A name for this task graph log, displayed in the UI. Does not need to be unique. \n * @type {string}\n * @memberof TaskGraphLog\n */\n name?: string;\n /**\n * The date/time when this task graph log was originally created. This is distinct from the execution start_time. \n * @type {string}\n * @memberof TaskGraphLog\n */\n created_at?: string;\n /**\n * The start time of the task graph, recorded when the server starts executing the first node. \n * @type {string}\n * @memberof TaskGraphLog\n */\n start_time?: string | null;\n /**\n * The end time of the task graph, recorded when the client reports completion. \n * @type {string}\n * @memberof TaskGraphLog\n */\n end_time?: string | null;\n /**\n * \n * @type {TaskGraphLogStatus}\n * @memberof TaskGraphLog\n */\n status?: TaskGraphLogStatus;\n /**\n * If present, the total cost of executing all nodes in this task graph. \n * @type {number}\n * @memberof TaskGraphLog\n */\n total_cost?: number | null;\n /**\n * If present, the total cost of access from execution of the nodes in this task graph. \n * @type {number}\n * @memberof TaskGraphLog\n */\n access_cost?: number | null;\n /**\n * If present, the total cost of access from execution of the nodes in this task graph. \n * @type {number}\n * @memberof TaskGraphLog\n */\n egress_cost?: number | null;\n /**\n * The total execution time of all the nodes in this graph, in ISO 8601 format with hours, minutes, and seconds. \n * @type {string}\n * @memberof TaskGraphLog\n */\n execution_time?: string;\n /**\n * A mapping from `ArrayTaskStatus` string value to the number of nodes in this graph that are in that status. \n * @type {{ [key: string]: number; }}\n * @memberof TaskGraphLog\n */\n status_count?: { [key: string]: number; };\n /**\n * The structure of the graph. This is provided by the client when first setting up the task graph. Thereafter, it is read-only. This must be topographically sorted; that is, each node must appear after all nodes that it depends upon. \n * @type {Array<TaskGraphNodeMetadata>}\n * @memberof TaskGraphLog\n */\n nodes?: Array<TaskGraphNodeMetadata>;\n /**\n * \n * @type {TaskGraphType}\n * @memberof TaskGraphLog\n */\n task_graph_type?: TaskGraphType;\n /**\n * The UUID of the task graph.\n * @type {string}\n * @memberof TaskGraphLog\n */\n task_graph_id?: string;\n /**\n * A system message describing a potential system error\n * @type {string}\n * @memberof TaskGraphLog\n */\n status_message?: string | null;\n /**\n * The name of the cloud provider where this task graph executed.\n * @type {string}\n * @memberof TaskGraphLog\n */\n cloud_provider?: string;\n /**\n * The region of the cloud provider where this task graph executed.\n * @type {string}\n * @memberof TaskGraphLog\n */\n cloud_region?: string;\n}\n/**\n * The location where an individual node of a task graph is executed. \n * @export\n * @enum {string}\n */\nexport enum TaskGraphLogRunLocation {\n Server = 'server',\n Client = 'client',\n Virtual = 'virtual'\n}\n\n/**\n * The status of a given task graph execution.\n * @export\n * @enum {string}\n */\nexport enum TaskGraphLogStatus {\n Submitted = 'submitted',\n Running = 'running',\n Idle = 'idle',\n Abandoned = 'abandoned',\n Succeeded = 'succeeded',\n Failed = 'failed',\n Cancelled = 'cancelled'\n}\n\n/**\n * Response data for a task graph list, including pagination metadata.\n * @export\n * @interface TaskGraphLogsData\n */\nexport interface TaskGraphLogsData {\n /**\n * The requested task graph logs.\n * @type {Array<TaskGraphLog>}\n * @memberof TaskGraphLogsData\n */\n task_graph_logs?: Array<TaskGraphLog>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof TaskGraphLogsData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Information about a single node within a registered task graph. A single node represents one piece of data or a computational step; either as an input value, a data source, or a computation that acts upon earlier nodes. The structure parallels the existing `TaskGraphNodeMetadata`. \n * @export\n * @interface TaskGraphNode\n */\nexport interface TaskGraphNode {\n /**\n * The client-generated UUID of the given graph node.\n * @type {string}\n * @memberof TaskGraphNode\n */\n client_node_id?: string;\n /**\n * A client-specified name for the node. If provided, this must be unique. \n * @type {string}\n * @memberof TaskGraphNode\n */\n name?: string | null;\n /**\n * The client_node_uuid of each node that this node depends upon. Used to define the structure of the graph. \n * @type {Array<string>}\n * @memberof TaskGraphNode\n */\n depends_on?: Array<string>;\n /**\n * \n * @type {UDFArrayDetails}\n * @memberof TaskGraphNode\n */\n array_node?: UDFArrayDetails;\n /**\n * \n * @type {TGInputNodeData}\n * @memberof TaskGraphNode\n */\n input_node?: TGInputNodeData | null;\n /**\n * \n * @type {TGSQLNodeData}\n * @memberof TaskGraphNode\n */\n sql_node?: TGSQLNodeData | null;\n /**\n * \n * @type {TGUDFNodeData}\n * @memberof TaskGraphNode\n */\n udf_node?: TGUDFNodeData | null;\n /**\n * \n * @type {RetryStrategy}\n * @memberof TaskGraphNode\n */\n retry_strategy?: RetryStrategy;\n /**\n * Used to create dynamic tasks based on the output of another node. The other node\\'s output must be a JSON list of values. The expansion process creates one task per item in the output list. The item is also passed as an argument to each task. The value is the client_node_uuid of the node that we want to expand. \n * @type {string}\n * @memberof TaskGraphNode\n */\n expand_node_output?: string | null;\n /**\n * Duration in seconds relative to the node start time which the node is allowed to run before it gets terminated. \n * @type {number}\n * @memberof TaskGraphNode\n */\n deadline?: number | null;\n}\n/**\n * Metadata about an individual node in a task graph.\n * @export\n * @interface TaskGraphNodeMetadata\n */\nexport interface TaskGraphNodeMetadata {\n /**\n * The client-generated UUID of the given graph node.\n * @type {string}\n * @memberof TaskGraphNodeMetadata\n */\n client_node_uuid?: string;\n /**\n * The client-generated name of the node. This is not guaranteed to be unique. \n * @type {string}\n * @memberof TaskGraphNodeMetadata\n */\n name?: string;\n /**\n * The client_node_uuid of each node that this node depends upon. Used to define the structure of the graph. \n * @type {Array<string>}\n * @memberof TaskGraphNodeMetadata\n */\n depends_on?: Array<string>;\n /**\n * \n * @type {TaskGraphLogRunLocation}\n * @memberof TaskGraphNodeMetadata\n */\n run_location?: TaskGraphLogRunLocation;\n /**\n * \n * @type {ArrayTaskStatus}\n * @memberof TaskGraphNodeMetadata\n */\n status?: ArrayTaskStatus;\n /**\n * The reason the array task status is in the state\n * @type {string}\n * @memberof TaskGraphNodeMetadata\n */\n status_message?: string | null;\n /**\n * ArrayTasks representing each execution attempt for this node. For nodes that have never been submitted, this will be empty. For nodes that have been retried, this may have multiple entries. The last one in the list represents the most recent execution. This is read-only and generated by the server based on the tasks it has actually executed. \n * @type {Array<ArrayTask>}\n * @memberof TaskGraphNodeMetadata\n */\n executions?: Array<ArrayTask>;\n}\n/**\n * details for sharing a given registered task graph\n * @export\n * @interface TaskGraphSharing\n */\nexport interface TaskGraphSharing {\n /**\n * List of permitted actions\n * @type {Array<TaskGraphActions>}\n * @memberof TaskGraphSharing\n */\n actions?: Array<TaskGraphActions>;\n /**\n * namespace being granted array access can be a user or organization\n * @type {string}\n * @memberof TaskGraphSharing\n */\n namespace?: string;\n /**\n * details on if the namespace is a organization or user\n * @type {string}\n * @memberof TaskGraphSharing\n */\n namespace_type?: string;\n}\n/**\n * The type of a task graph. \n * @export\n * @enum {string}\n */\nexport enum TaskGraphType {\n Batch = 'batch',\n Realtime = 'realtime'\n}\n\n/**\n * Information about a series of task graphs.\n * @export\n * @interface TaskGraphs\n */\nexport interface TaskGraphs {\n /**\n * The series of graphs. \n * @type {Array<TaskGraph>}\n * @memberof TaskGraphs\n */\n graphs?: Array<TaskGraph>;\n}\n/**\n * Object containing data related to taskgraph logs to be used in the tasgraph log listing route \n * @export\n * @interface TaskgraphLogsFiltersResponse\n */\nexport interface TaskgraphLogsFiltersResponse {\n /**\n * List of users that have ran any taskgraph that belongs to the request namespace\n * @type {Array<TaskgraphLogsFiltersResponseCreators>}\n * @memberof TaskgraphLogsFiltersResponse\n */\n creators?: Array<TaskgraphLogsFiltersResponseCreators>;\n}\n/**\n * \n * @export\n * @interface TaskgraphLogsFiltersResponseCreators\n */\nexport interface TaskgraphLogsFiltersResponseCreators {\n /**\n * user\\'s uuid\n * @type {string}\n * @memberof TaskgraphLogsFiltersResponseCreators\n */\n id: string;\n /**\n * user\\'s username\n * @type {string}\n * @memberof TaskgraphLogsFiltersResponseCreators\n */\n username: string;\n}\n/**\n * TileDB config used for interaction with the embedded library\n * @export\n * @interface TileDBConfig\n */\nexport interface TileDBConfig {\n /**\n * \n * @type {Array<TileDBConfigEntries>}\n * @memberof TileDBConfig\n */\n entries?: Array<TileDBConfigEntries>;\n}\n/**\n * \n * @export\n * @interface TileDBConfigEntries\n */\nexport interface TileDBConfigEntries {\n /**\n * \n * @type {string}\n * @memberof TileDBConfigEntries\n */\n key?: string;\n /**\n * \n * @type {string}\n * @memberof TileDBConfigEntries\n */\n value?: string;\n}\n/**\n * A api token and its metadata\n * @export\n * @interface Token\n */\nexport interface Token {\n /**\n * unique id of organization\n * @type {string}\n * @memberof Token\n */\n user_id: string;\n /**\n * A api token\n * @type {string}\n * @memberof Token\n */\n token: string;\n /**\n * Name of token\n * @type {string}\n * @memberof Token\n */\n name: string;\n /**\n * datetime the token was created at\n * @type {string}\n * @memberof Token\n */\n issued_at: string;\n /**\n * datetime the token when token will expire\n * @type {string}\n * @memberof Token\n */\n expires_at: string;\n /**\n * \n * @type {TokenScope}\n * @memberof Token\n */\n scope: TokenScope;\n}\n/**\n * A request from a user for an api token\n * @export\n * @interface TokenRequest\n */\nexport interface TokenRequest {\n /**\n * Expiration date for token, if empty token defaults to 30 minutes\n * @type {string}\n * @memberof TokenRequest\n */\n expires?: string;\n /**\n * Optional name for token, if the name already exists for the user it will be auto incremented (i.e. myToken-1)\n * @type {string}\n * @memberof TokenRequest\n */\n name?: string;\n /**\n * \n * @type {TokenScope}\n * @memberof TokenRequest\n */\n scope?: TokenScope;\n}\n/**\n * An api token scope available for creation\n * @export\n * @enum {string}\n */\nexport enum TokenScope {\n PasswordReset = 'password_reset',\n ConfirmEmail = 'confirm_email',\n Star = '*',\n Userread = 'user:read',\n UserreadWrite = 'user:read-write',\n Useradmin = 'user:admin',\n Arrayread = 'array:read',\n ArrayreadWrite = 'array:read-write',\n Arrayadmin = 'array:admin',\n Organizationread = 'organization:read',\n OrganizationreadWrite = 'organization:read-write',\n Organizationadmin = 'organization:admin',\n Groupread = 'group:read',\n GroupreadWrite = 'group:read-write',\n Groupadmin = 'group:admin'\n}\n\n/**\n * Contains array details for multi-array query including uri, ranges buffers\n * @export\n * @interface UDFArrayDetails\n */\nexport interface UDFArrayDetails {\n /**\n * An optional client-generated identifier to distinguish between multiple range/buffer requests from the same array in the same call. This may be set for MultiArrayUDFs that use the `argument_json` style of passing arrays. \n * @type {string}\n * @memberof UDFArrayDetails\n */\n parameter_id?: string | null;\n /**\n * array to set ranges and buffers on, must be in tiledb:// format\n * @type {string}\n * @memberof UDFArrayDetails\n */\n uri?: string;\n /**\n * \n * @type {QueryRanges}\n * @memberof UDFArrayDetails\n */\n ranges?: QueryRanges;\n /**\n * List of buffers to fetch (attributes + dimensions)\n * @type {Array<string>}\n * @memberof UDFArrayDetails\n */\n buffers?: Array<string>;\n}\n/**\n * Copied udf uri and information\n * @export\n * @interface UDFCopied\n */\nexport interface UDFCopied {\n /**\n * output location of the TileDB udf\n * @type {string}\n * @memberof UDFCopied\n */\n output_uri?: string;\n /**\n * namespace of the copied udf\n * @type {string}\n * @memberof UDFCopied\n */\n namespace?: string;\n /**\n * name of the copied udf\n * @type {string}\n * @memberof UDFCopied\n */\n name?: string;\n /**\n * unique ID of the copied udf\n * @type {string}\n * @memberof UDFCopied\n */\n id: string;\n}\n/**\n * information required to copy a udf\n * @export\n * @interface UDFCopy\n */\nexport interface UDFCopy {\n /**\n * output location of the TileDB File\n * @type {string}\n * @memberof UDFCopy\n */\n output_uri?: string;\n /**\n * namespace to register the copy. If empty use the namespace of the request user\n * @type {string}\n * @memberof UDFCopy\n */\n namespace?: string;\n /**\n * name to set for the copy. If empty use the name as the original udf, if it not already used in the namespace\n * @type {string}\n * @memberof UDFCopy\n */\n name?: string;\n}\n/**\n * A user-favorite UDF item\n * @export\n * @interface UDFFavorite\n */\nexport interface UDFFavorite {\n /**\n * unique UUID of the UDF\n * @type {string}\n * @memberof UDFFavorite\n */\n udf_uuid?: string;\n /**\n * the namespace of the UDF\n * @type {string}\n * @memberof UDFFavorite\n */\n namespace?: string;\n /**\n * the name of the UDF\n * @type {string}\n * @memberof UDFFavorite\n */\n name?: string;\n}\n/**\n * Object including UDF favorites and pagination metadata\n * @export\n * @interface UDFFavoritesData\n */\nexport interface UDFFavoritesData {\n /**\n * List of UDF infos\n * @type {Array<ArrayInfo>}\n * @memberof UDFFavoritesData\n */\n udfs?: Array<ArrayInfo>;\n /**\n * \n * @type {PaginationMetadata}\n * @memberof UDFFavoritesData\n */\n pagination_metadata?: PaginationMetadata;\n}\n/**\n * Language of a user defined function\n * @export\n * @enum {string}\n */\nexport enum UDFLanguage {\n Python = 'python'\n}\n\n/**\n * data to update user in organization\n * @export\n * @interface UpdateOrganizationUserParams\n */\nexport interface UpdateOrganizationUserParams {\n /**\n * username for user\n * @type {string}\n * @memberof UpdateOrganizationUserParams\n */\n username?: string;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof UpdateOrganizationUserParams\n */\n role?: OrganizationRoles;\n}\n/**\n * User\n * @export\n * @interface User\n */\nexport interface User {\n /**\n * user\\'s uuid\n * @type {string}\n * @memberof User\n */\n id: string;\n /**\n * username must be unique\n * @type {string}\n * @memberof User\n */\n username: string;\n /**\n * User logo\n * @type {string}\n * @memberof User\n */\n logo?: string;\n /**\n * password\n * @type {string}\n * @memberof User\n */\n password?: string;\n /**\n * the user\\'s full, real name\n * @type {string}\n * @memberof User\n */\n name?: string;\n /**\n * the user\\'s email\n * @type {string}\n * @memberof User\n */\n email: string;\n /**\n * when the user last logged in (set by the server)\n * @type {string}\n * @memberof User\n */\n last_activity_date?: string;\n /**\n * the user\\'s timezone\n * @type {string}\n * @memberof User\n */\n timezone?: string;\n /**\n * A notice that the user has an unpaid subscription\n * @type {boolean}\n * @memberof User\n */\n unpaid_subscription: boolean;\n /**\n * Array of organizations a user is part of and their roles\n * @type {Array<UserOrganization>}\n * @memberof User\n */\n organizations: Array<UserOrganization>;\n /**\n * Denotes that the user is able to apply pricing to arrays by means of Stripe Connect\n * @type {boolean}\n * @memberof User\n */\n stripe_connect: boolean;\n /**\n * default s3 path to store newly created notebooks\n * @type {string}\n * @memberof User\n */\n default_s3_path?: string;\n /**\n * Default s3 path credentials name is the credentials name to use along with default_s3_path\n * @type {string}\n * @memberof User\n */\n default_s3_path_credentials_name?: string;\n /**\n * Override the default namespace charged for actions when no namespace is specified\n * @type {string}\n * @memberof User\n */\n default_namespace_charged?: string;\n /**\n * The default region to use for notebooks and other operations. It must be a region supported by TileDB, see https://docs.tiledb.com/cloud/concepts/tiledb-cloud-internals/architecture#orchestration \n * @type {string}\n * @memberof User\n */\n default_region?: string;\n /**\n * User\\'s company\n * @type {string}\n * @memberof User\n */\n company?: string;\n /**\n * Beta features that the user has access to\n * @type {Array<EnabledFeature>}\n * @memberof User\n */\n enabled_features?: Array<EnabledFeature>;\n /**\n * Free credits given to the user\n * @type {number}\n * @memberof User\n */\n sign_up_credits?: number;\n /**\n * \n * @type {AssetLocations}\n * @memberof User\n */\n asset_locations?: AssetLocations;\n /**\n * \n * @type {ProductTier}\n * @memberof User\n */\n product_tier?: ProductTier;\n /**\n * \n * @type {ApplicationStatus}\n * @memberof User\n */\n free_tier_status?: ApplicationStatus;\n}\n/**\n * user\\'s answer\n * @export\n * @interface UserAnswer\n */\nexport interface UserAnswer {\n /**\n * ID of the question in the questionnaire\n * @type {string}\n * @memberof UserAnswer\n */\n question_id?: string;\n /**\n * ID of the answer in the questionnaire\n * @type {string}\n * @memberof UserAnswer\n */\n answer_id?: string;\n}\n/**\n * user\\'s new password\n * @export\n * @interface UserChangePassword\n */\nexport interface UserChangePassword {\n /**\n * User\\'s current password\n * @type {string}\n * @memberof UserChangePassword\n */\n current_password: string;\n /**\n * User\\'s new password\n * @type {string}\n * @memberof UserChangePassword\n */\n password: string;\n}\n/**\n * User\\'s metadata.\n * @export\n * @interface UserMetaGetResponse\n */\nexport interface UserMetaGetResponse {\n /**\n * if user should see the announcement of cc removal and free tier\n * @type {boolean}\n * @memberof UserMetaGetResponse\n */\n announce_cc_removal_and_free_tier: boolean;\n}\n/**\n * User\\'s metadata.\n * @export\n * @interface UserMetaSetRequest\n */\nexport interface UserMetaSetRequest {\n /**\n * if user should see the announcement of cc removal and free tier\n * @type {boolean}\n * @memberof UserMetaSetRequest\n */\n announce_cc_removal_and_free_tier?: boolean | null;\n}\n/**\n * User\\'s organization (in user object)\n * @export\n * @interface UserOrganization\n */\nexport interface UserOrganization {\n /**\n * unique id of organization\n * @type {string}\n * @memberof UserOrganization\n */\n organization_id: string;\n /**\n * \n * @type {OrganizationRoles}\n * @memberof UserOrganization\n */\n role: OrganizationRoles;\n /**\n * organization name must be unique\n * @type {string}\n * @memberof UserOrganization\n */\n organization_name: string;\n /**\n * list of actions user is allowed to do on this organization\n * @type {Array<NamespaceActions>}\n * @memberof UserOrganization\n */\n allowed_actions: Array<NamespaceActions>;\n /**\n * unique id of user\n * @type {string}\n * @memberof UserOrganization\n */\n user_id: string;\n /**\n * username\n * @type {string}\n * @memberof UserOrganization\n */\n username: string;\n}\n/**\n * The entropy of a user\\'s password.\n * @export\n * @interface UserPasswordEntropy\n */\nexport interface UserPasswordEntropy {\n /**\n * \n * @type {number}\n * @memberof UserPasswordEntropy\n */\n entropy: number;\n}\n/**\n * User\\'s request for free credits\n * @export\n * @interface UserRequestCredits\n */\nexport interface UserRequestCredits {\n /**\n * User\\'s data type\n * @type {string}\n * @memberof UserRequestCredits\n */\n data_type: string;\n /**\n * User\\'s use case\n * @type {string}\n * @memberof UserRequestCredits\n */\n use_case: string;\n /**\n * User\\'s role\n * @type {string}\n * @memberof UserRequestCredits\n */\n role: string;\n /**\n * User\\'s intention to use TileDB Cloud as\n * @type {string}\n * @memberof UserRequestCredits\n */\n intention: string;\n}\n/**\n * User\n * @export\n * @interface UserSignupParams\n */\nexport interface UserSignupParams {\n /**\n * username must be unique\n * @type {string}\n * @memberof UserSignupParams\n */\n username: string;\n /**\n * password\n * @type {string}\n * @memberof UserSignupParams\n */\n password: string;\n /**\n * the user\\'s email\n * @type {string}\n * @memberof UserSignupParams\n */\n email: string;\n /**\n * Captcha token retrieved from google (optional, used in SaaS only)\n * @type {string}\n * @memberof UserSignupParams\n */\n captcha_token?: string;\n /**\n * Referrer value from document (if any)\n * @type {string}\n * @memberof UserSignupParams\n */\n referrer?: string;\n}\n/**\n * User properties that can be patch-updated\n * @export\n * @interface UserUpdateParams\n */\nexport interface UserUpdateParams {\n /**\n * username must be unique\n * @type {string}\n * @memberof UserUpdateParams\n */\n username?: string;\n /**\n * User logo\n * @type {string}\n * @memberof UserUpdateParams\n */\n logo?: string;\n /**\n * the user\\'s full, real name\n * @type {string}\n * @memberof UserUpdateParams\n */\n name?: string;\n /**\n * the user\\'s email\n * @type {string}\n * @memberof UserUpdateParams\n */\n email?: string;\n /**\n * the user\\'s timezone\n * @type {string}\n * @memberof UserUpdateParams\n */\n timezone?: string;\n /**\n * default s3 path to store newly created notebooks\n * @type {string}\n * @memberof UserUpdateParams\n */\n default_s3_path?: string;\n /**\n * Default s3 path credentials name is the credentials name to use along with default_s3_path\n * @type {string}\n * @memberof UserUpdateParams\n */\n default_s3_path_credentials_name?: string;\n /**\n * Override the default namespace charged for actions when no namespace is specified\n * @type {string}\n * @memberof UserUpdateParams\n */\n default_namespace_charged?: string;\n /**\n * The default region to use for notebooks and other operations. It must be a region supported by TileDB, see https://docs.tiledb.com/cloud/concepts/tiledb-cloud-internals/architecture#orchestration \n * @type {string}\n * @memberof UserUpdateParams\n */\n default_region?: string;\n /**\n * User\\'s company\n * @type {string}\n * @memberof UserUpdateParams\n */\n company?: string;\n /**\n * \n * @type {AssetLocations}\n * @memberof UserUpdateParams\n */\n asset_locations?: AssetLocations;\n}\n/**\n * Parameters for ingesting VCF data. See tiledb.cloud.bioimg.ingestion.ingest for details. \n * @export\n * @interface VCFIngestionRequest\n */\nexport interface VCFIngestionRequest {\n /**\n * The URI to search.\n * @type {string}\n * @memberof VCFIngestionRequest\n */\n search_uri?: string;\n /**\n * The destination folder.\n * @type {string}\n * @memberof VCFIngestionRequest\n */\n dataset_uri?: string;\n /**\n * The name of the ARN credentials to use to read source data and write to destination.\n * @type {string}\n * @memberof VCFIngestionRequest\n */\n access_credentials_name?: string;\n /**\n * What pattern to search in search_uri.\n * @type {string}\n * @memberof VCFIngestionRequest\n */\n pattern?: string;\n /**\n * The name of the ingested data.\n * @type {string}\n * @memberof VCFIngestionRequest\n */\n register_name?: string;\n /**\n * The memory that will be needed in GiB.\n * @type {string}\n * @memberof VCFIngestionRequest\n */\n memory?: string;\n /**\n * The number of threads.\n * @type {number}\n * @memberof VCFIngestionRequest\n */\n threads?: number;\n /**\n * The number of cpu cores.\n * @type {number}\n * @memberof VCFIngestionRequest\n */\n cpu?: number;\n /**\n * Verbose ingest or not.\n * @type {boolean}\n * @memberof VCFIngestionRequest\n */\n verbose?: boolean;\n /**\n * List of contigs (sequences or scaffolds that make up a reference genome.).\n * @type {Array<string>}\n * @memberof VCFIngestionRequest\n */\n contigs?: Array<string>;\n}\n\n\n\nexport type AcademyApi_getAcademyLessons$Params = void;\n\nexport const AcademyApi_getAcademyLessons$Path = '/academy/lessons';\n\n/**\n * Get information about user lessons\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AcademyApi_getAcademyLessonsParamCreator = async (data: AcademyApi_getAcademyLessons$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/academy/lessons`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AcademyApi_getAcademyQuestionnaire$Params {\n questionnaireId: string,\n}\n\nexport const AcademyApi_getAcademyQuestionnaire$Path = '/academy/questionnaires/{questionnaire_id}';\n\n/**\n * Get academy questionnaire information for user\n * @param {string} questionnaireId Required questionnaire UUID. This is used for tracking answers on a questionnaire per user. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AcademyApi_getAcademyQuestionnaireParamCreator = async (data: AcademyApi_getAcademyQuestionnaire$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'questionnaireId' is not null or undefined\nif (data['questionnaireId'] === null || data['questionnaireId'] === undefined) {\n throw new RequiredError('questionnaireId','Required parameter questionnaireId was null or undefined when calling getAcademyQuestionnaire.');\n}\nconst localVarPath = `/academy/questionnaires/{questionnaire_id}`\n .replace(`{${\"questionnaire_id\"}}`, encodeURIComponent(String(data['questionnaireId'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AcademyApi_putAcademyLessons$Params {\n academyLessons?: Array<AcademyLesson>,\n}\n\nexport const AcademyApi_putAcademyLessons$Path = '/academy/lessons';\n\n/**\n * Store information about user lessons\n * @param {Array<AcademyLesson>} [academyLessons] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AcademyApi_putAcademyLessonsParamCreator = async (data: AcademyApi_putAcademyLessons$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/academy/lessons`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['academyLessons'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['academyLessons'] !== undefined ? data['academyLessons'] : {}) : (data['academyLessons'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AcademyApi_putAcademyQuestionnaire$Params {\n questionnaireId: string,\n academyQuestionnaire?: AcademyQuestionnairePutRequest,\n}\n\nexport const AcademyApi_putAcademyQuestionnaire$Path = '/academy/questionnaires/{questionnaire_id}';\n\n/**\n * Create or update academy questionnaire\n * @param {string} questionnaireId Required questionnaire UUID. This is used for tracking answers on a questionnaire per user. \n * @param {AcademyQuestionnairePutRequest} [academyQuestionnaire] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AcademyApi_putAcademyQuestionnaireParamCreator = async (data: AcademyApi_putAcademyQuestionnaire$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'questionnaireId' is not null or undefined\nif (data['questionnaireId'] === null || data['questionnaireId'] === undefined) {\n throw new RequiredError('questionnaireId','Required parameter questionnaireId was null or undefined when calling putAcademyQuestionnaire.');\n}\nconst localVarPath = `/academy/questionnaires/{questionnaire_id}`\n .replace(`{${\"questionnaire_id\"}}`, encodeURIComponent(String(data['questionnaireId'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['academyQuestionnaire'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['academyQuestionnaire'] !== undefined ? data['academyQuestionnaire'] : {}) : (data['academyQuestionnaire'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type AcademyApi_getAcademyLessons$Response = Array<AcademyLesson>;\n\n/**\n * Get information about user lessons\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AcademyApi_getAcademyLessons(data: AcademyApi_getAcademyLessons$Params, options?: any): Promise<AxiosResponse<AcademyApi_getAcademyLessons$Response>> {\n const localVarAxiosArgs = await AcademyApi_getAcademyLessonsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AcademyApi_getAcademyQuestionnaire$Response = AcademyQuestionnaireListResponse;\n\n/**\n * Get academy questionnaire information for user\n * @param {string} questionnaireId Required questionnaire UUID. This is used for tracking answers on a questionnaire per user. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AcademyApi_getAcademyQuestionnaire(data: AcademyApi_getAcademyQuestionnaire$Params, options?: any): Promise<AxiosResponse<AcademyApi_getAcademyQuestionnaire$Response>> {\n const localVarAxiosArgs = await AcademyApi_getAcademyQuestionnaireParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AcademyApi_putAcademyLessons$Response = void;\n\n/**\n * Store information about user lessons\n * @param {Array<AcademyLesson>} [academyLessons] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AcademyApi_putAcademyLessons(data: AcademyApi_putAcademyLessons$Params, options?: any): Promise<AxiosResponse<AcademyApi_putAcademyLessons$Response>> {\n const localVarAxiosArgs = await AcademyApi_putAcademyLessonsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AcademyApi_putAcademyQuestionnaire$Response = void;\n\n/**\n * Create or update academy questionnaire\n * @param {string} questionnaireId Required questionnaire UUID. This is used for tracking answers on a questionnaire per user. \n * @param {AcademyQuestionnairePutRequest} [academyQuestionnaire] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AcademyApi_putAcademyQuestionnaire(data: AcademyApi_putAcademyQuestionnaire$Params, options?: any): Promise<AxiosResponse<AcademyApi_putAcademyQuestionnaire$Response>> {\n const localVarAxiosArgs = await AcademyApi_putAcademyQuestionnaireParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface ArrayApi_arrayActivityLog$Params {\n namespace: string,\n array: string,\n start?: number,\n end?: number,\n eventTypes?: Array<string>,\n taskId?: string,\n hasTaskId?: boolean,\n page?: number,\n perPage?: number,\n}\n\nexport const ArrayApi_arrayActivityLog$Path = '/arrays/{namespace}/{array}/activity';\n\n/**\n * get array activity logs\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [start] Start time of window of fetch logs, unix epoch in seconds (default: seven days ago)\n * @param {number} [end] End time of window of fetch logs, unix epoch in seconds (default: current utc timestamp)\n * @param {Array<string>} [eventTypes] Event values can be one or more of the following read, write, create, delete, register, deregister, comma separated\n * @param {string} [taskId] Array task id To filter activity to\n * @param {boolean} [hasTaskId] Excludes activity log results that does not contain an array task uuid\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_arrayActivityLogParamCreator = async (data: ArrayApi_arrayActivityLog$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling arrayActivityLog.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling arrayActivityLog.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/activity`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['start'] !== undefined) {\n localVarQueryParameter['start'] = data['start'];\n}\nif (data['end'] !== undefined) {\n localVarQueryParameter['end'] = data['end'];\n}\nif (data['eventTypes']) {\n localVarQueryParameter['event_types'] = data['eventTypes'];\n}\nif (data['taskId'] !== undefined) {\n localVarQueryParameter['task_id'] = data['taskId'];\n}\nif (data['hasTaskId'] !== undefined) {\n localVarQueryParameter['has_task_id'] = data['hasTaskId'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_arraysBrowserOwnedGet$Params {\n page?: number,\n perPage?: number,\n search?: string,\n namespace?: string,\n orderby?: string,\n permissions?: string,\n tag?: Array<string>,\n excludeTag?: Array<string>,\n fileType?: Array<string>,\n excludeFileType?: Array<string>,\n fileProperty?: Array<string>,\n}\n\nexport const ArrayApi_arraysBrowserOwnedGet$Path = '/arrays/browser/owned';\n\n/**\n * Fetch a list of all arrays that are owned directly by user or user\\'s organizations\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_arraysBrowserOwnedGetParamCreator = async (data: ArrayApi_arraysBrowserOwnedGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/arrays/browser/owned`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\nif (data['tag']) {\n localVarQueryParameter['tag'] = data['tag'];\n}\nif (data['excludeTag']) {\n localVarQueryParameter['exclude_tag'] = data['excludeTag'];\n}\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['excludeFileType']) {\n localVarQueryParameter['exclude_file_type'] = data['excludeFileType'];\n}\nif (data['fileProperty']) {\n localVarQueryParameter['file_property'] = data['fileProperty'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_arraysBrowserOwnedSidebarGet$Params {\n fileType?: Array<string>,\n excludeFileType?: Array<string>,\n fileProperty?: Array<string>,\n sharedTo?: Array<string>,\n}\n\nexport const ArrayApi_arraysBrowserOwnedSidebarGet$Path = '/arrays/browser/owned/sidebar';\n\n/**\n * Fetch a sidebar for arrays that are owned directly by user or user\\'s organizations\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_arraysBrowserOwnedSidebarGetParamCreator = async (data: ArrayApi_arraysBrowserOwnedSidebarGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/arrays/browser/owned/sidebar`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['excludeFileType']) {\n localVarQueryParameter['exclude_file_type'] = data['excludeFileType'];\n}\nif (data['fileProperty']) {\n localVarQueryParameter['file_property'] = data['fileProperty'];\n}\nif (data['sharedTo']) {\n localVarQueryParameter['shared_to'] = data['sharedTo'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_arraysBrowserPublicGet$Params {\n page?: number,\n perPage?: number,\n search?: string,\n namespace?: string,\n orderby?: string,\n permissions?: string,\n tag?: Array<string>,\n excludeTag?: Array<string>,\n fileType?: Array<string>,\n excludeFileType?: Array<string>,\n fileProperty?: Array<string>,\n}\n\nexport const ArrayApi_arraysBrowserPublicGet$Path = '/arrays/browser/public';\n\n/**\n * Fetch a list of all arrays that have been shared publically\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_arraysBrowserPublicGetParamCreator = async (data: ArrayApi_arraysBrowserPublicGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/arrays/browser/public`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\nif (data['tag']) {\n localVarQueryParameter['tag'] = data['tag'];\n}\nif (data['excludeTag']) {\n localVarQueryParameter['exclude_tag'] = data['excludeTag'];\n}\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['excludeFileType']) {\n localVarQueryParameter['exclude_file_type'] = data['excludeFileType'];\n}\nif (data['fileProperty']) {\n localVarQueryParameter['file_property'] = data['fileProperty'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_arraysBrowserPublicSidebarGet$Params {\n fileType?: Array<string>,\n excludeFileType?: Array<string>,\n fileProperty?: Array<string>,\n sharedTo?: Array<string>,\n}\n\nexport const ArrayApi_arraysBrowserPublicSidebarGet$Path = '/arrays/browser/public/sidebar';\n\n/**\n * Fetch a sidebar of all arrays that have been shared publically\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_arraysBrowserPublicSidebarGetParamCreator = async (data: ArrayApi_arraysBrowserPublicSidebarGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/arrays/browser/public/sidebar`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['excludeFileType']) {\n localVarQueryParameter['exclude_file_type'] = data['excludeFileType'];\n}\nif (data['fileProperty']) {\n localVarQueryParameter['file_property'] = data['fileProperty'];\n}\nif (data['sharedTo']) {\n localVarQueryParameter['shared_to'] = data['sharedTo'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_arraysBrowserSharedGet$Params {\n page?: number,\n perPage?: number,\n search?: string,\n namespace?: string,\n orderby?: string,\n permissions?: string,\n tag?: Array<string>,\n excludeTag?: Array<string>,\n fileType?: Array<string>,\n excludeFileType?: Array<string>,\n fileProperty?: Array<string>,\n sharedTo?: Array<string>,\n}\n\nexport const ArrayApi_arraysBrowserSharedGet$Path = '/arrays/browser/shared';\n\n/**\n * Fetch a list of all arrays that have been shared with the user\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there arrays were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_arraysBrowserSharedGetParamCreator = async (data: ArrayApi_arraysBrowserSharedGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/arrays/browser/shared`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\nif (data['tag']) {\n localVarQueryParameter['tag'] = data['tag'];\n}\nif (data['excludeTag']) {\n localVarQueryParameter['exclude_tag'] = data['excludeTag'];\n}\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['excludeFileType']) {\n localVarQueryParameter['exclude_file_type'] = data['excludeFileType'];\n}\nif (data['fileProperty']) {\n localVarQueryParameter['file_property'] = data['fileProperty'];\n}\nif (data['sharedTo']) {\n localVarQueryParameter['shared_to'] = data['sharedTo'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_arraysBrowserSharedSidebarGet$Params {\n fileType?: Array<string>,\n excludeFileType?: Array<string>,\n fileProperty?: Array<string>,\n sharedTo?: Array<string>,\n}\n\nexport const ArrayApi_arraysBrowserSharedSidebarGet$Path = '/arrays/browser/shared/sidebar';\n\n/**\n * Fetch a list of all arrays that have been shared with the user\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_arraysBrowserSharedSidebarGetParamCreator = async (data: ArrayApi_arraysBrowserSharedSidebarGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/arrays/browser/shared/sidebar`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['excludeFileType']) {\n localVarQueryParameter['exclude_file_type'] = data['excludeFileType'];\n}\nif (data['fileProperty']) {\n localVarQueryParameter['file_property'] = data['fileProperty'];\n}\nif (data['sharedTo']) {\n localVarQueryParameter['shared_to'] = data['sharedTo'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_createPricing$Params {\n namespace: string,\n array: string,\n pricingInfo?: PricingInfo,\n}\n\nexport const ArrayApi_createPricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Create pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} [pricingInfo] Array pricing details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_createPricingParamCreator = async (data: ArrayApi_createPricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling createPricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling createPricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['pricingInfo'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['pricingInfo'] !== undefined ? data['pricingInfo'] : {}) : (data['pricingInfo'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_deleteArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_deleteArray$Path = '/arrays/{namespace}/{array}/delete';\n\n/**\n * deletes a array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_deleteArrayParamCreator = async (data: ArrayApi_deleteArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deleteArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling deleteArray.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/delete`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_deletePricing$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_deletePricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Delete pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_deletePricingParamCreator = async (data: ArrayApi_deletePricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deletePricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling deletePricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_deregisterArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_deregisterArray$Path = '/arrays/{namespace}/{array}/deregister';\n\n/**\n * deregister a array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_deregisterArrayParamCreator = async (data: ArrayApi_deregisterArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deregisterArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling deregisterArray.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/deregister`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getActivityLogById$Params {\n namespace: string,\n array: string,\n id: string,\n}\n\nexport const ArrayApi_getActivityLogById$Path = '/arrays/{namespace}/{array}/activity/{id}';\n\n/**\n * get activity log by id\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {string} id id of the activity\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getActivityLogByIdParamCreator = async (data: ArrayApi_getActivityLogById$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getActivityLogById.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getActivityLogById.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling getActivityLogById.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/activity/{id}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getAllArrayInfo$Params {\n namespace?: string,\n orderby?: string,\n permissions?: string,\n search?: string,\n publicShare?: string,\n}\n\nexport const ArrayApi_getAllArrayInfo$Path = '/arrays';\n\n/**\n * get all array metadata user has access to\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [publicShare] Public share values can be one of exclude, only\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getAllArrayInfoParamCreator = async (data: ArrayApi_getAllArrayInfo$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/arrays`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['publicShare'] !== undefined) {\n localVarQueryParameter['public_share'] = data['publicShare'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getArrayEndTimestamps$Params {\n namespace: string,\n array: string,\n page?: number,\n perPage?: number,\n}\n\nexport const ArrayApi_getArrayEndTimestamps$Path = '/arrays/{namespace}/{array}/end_timestamps';\n\n/**\n * retrieve a list of timestamps from the array fragment info listing in milliseconds, paginated\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getArrayEndTimestampsParamCreator = async (data: ArrayApi_getArrayEndTimestamps$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getArrayEndTimestamps.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getArrayEndTimestamps.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/end_timestamps`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getArrayInfo$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_getArrayInfo$Path = '/arrays/{namespace}/{array}/info';\n\n/**\n * get metadata on an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getArrayInfoParamCreator = async (data: ArrayApi_getArrayInfo$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getArrayInfo.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getArrayInfo.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/info`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getArrayMetaData$Params {\n namespace: string,\n array: string,\n length?: number,\n version?: number,\n}\n\nexport const ArrayApi_getArrayMetaData$Path = '/arrays/{namespace}/{array}/metadata';\n\n/**\n * get metadata from the array in json format\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [length] (optional) limit character length of returned values\n * @param {number} [version] Milliseconds since Unix epoch, metadata will use open_at functionality to open array at the specific timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getArrayMetaDataParamCreator = async (data: ArrayApi_getArrayMetaData$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getArrayMetaData.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getArrayMetaData.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/metadata`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['length'] !== undefined) {\n localVarQueryParameter['length'] = data['length'];\n}\nif (data['version'] !== undefined) {\n localVarQueryParameter['version'] = data['version'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getArraySampleData$Params {\n namespace: string,\n array: string,\n samples?: number,\n}\n\nexport const ArrayApi_getArraySampleData$Path = '/arrays/{namespace}/{array}/sample';\n\n/**\n * get an sample set of data from the array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [samples] Number of sample results to return\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getArraySampleDataParamCreator = async (data: ArrayApi_getArraySampleData$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getArraySampleData.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getArraySampleData.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/sample`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['samples'] !== undefined) {\n localVarQueryParameter['samples'] = data['samples'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getArraySchema$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_getArraySchema$Path = '/arrays/{namespace}/{array}';\n\n/**\n * get an ArraySchema using a url encoded uri\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getArraySchemaParamCreator = async (data: ArrayApi_getArraySchema$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getArraySchema.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getArraySchema.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getArraySharingPolicies$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_getArraySharingPolicies$Path = '/arrays/{namespace}/{array}/share';\n\n/**\n * Get all sharing details of the array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getArraySharingPoliciesParamCreator = async (data: ArrayApi_getArraySharingPolicies$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getArraySharingPolicies.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getArraySharingPolicies.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_getFragmentEndTimestamp$Params {\n namespace: string,\n array: string,\n endTimestamp?: number,\n}\n\nexport const ArrayApi_getFragmentEndTimestamp$Path = '/arrays/{namespace}/{array}/fragment_end_timestamp';\n\n/**\n * get fragment timestamp (start) on an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] Milliseconds since Unix epoch\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_getFragmentEndTimestampParamCreator = async (data: ArrayApi_getFragmentEndTimestamp$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getFragmentEndTimestamp.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getFragmentEndTimestamp.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/fragment_end_timestamp`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_registerArray$Params {\n arrayMetadata: ArrayRegisterParams,\n}\n\nexport const ArrayApi_registerArray$Path = '/arrays/register';\n\n/**\n * register an array at a specified URI registered to the given namespace\n * @param {ArrayRegisterParams} arrayMetadata metadata associated with array\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_registerArrayParamCreator = async (data: ArrayApi_registerArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'arrayMetadata' is not null or undefined\nif (data['arrayMetadata'] === null || data['arrayMetadata'] === undefined) {\n throw new RequiredError('arrayMetadata','Required parameter arrayMetadata was null or undefined when calling registerArray.');\n}\nconst localVarPath = `/arrays/register`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['arrayMetadata'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['arrayMetadata'] !== undefined ? data['arrayMetadata'] : {}) : (data['arrayMetadata'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_shareArray$Params {\n namespace: string,\n array: string,\n arraySharing: ArraySharingRequestParams,\n}\n\nexport const ArrayApi_shareArray$Path = '/arrays/{namespace}/{array}/share';\n\n/**\n * Share an array with a user\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {ArraySharingRequestParams} arraySharing Namespace and list of permissions to share with. An empty list of permissions will remove the namespace, if permissions already exist they will be deleted then new ones added. In the event of a failure, the new polcies will be rolled back to prevent partial policies, and its likely the array will not be shared with the namespace at all\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_shareArrayParamCreator = async (data: ArrayApi_shareArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling shareArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling shareArray.');\n}\n// verify required parameter 'arraySharing' is not null or undefined\nif (data['arraySharing'] === null || data['arraySharing'] === undefined) {\n throw new RequiredError('arraySharing','Required parameter arraySharing was null or undefined when calling shareArray.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['arraySharing'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['arraySharing'] !== undefined ? data['arraySharing'] : {}) : (data['arraySharing'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_submitQueryJson$Params {\n namespace: string,\n array: string,\n queryJson: QueryJson,\n}\n\nexport const ArrayApi_submitQueryJson$Path = '/arrays/{namespace}/{array}/query/submit_query_json';\n\n/**\n * send a query to run against a specified array/URI registered to a group/project, returns json results\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {QueryJson} queryJson query to run\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_submitQueryJsonParamCreator = async (data: ArrayApi_submitQueryJson$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling submitQueryJson.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling submitQueryJson.');\n}\n// verify required parameter 'queryJson' is not null or undefined\nif (data['queryJson'] === null || data['queryJson'] === undefined) {\n throw new RequiredError('queryJson','Required parameter queryJson was null or undefined when calling submitQueryJson.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/query/submit_query_json`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['queryJson'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['queryJson'] !== undefined ? data['queryJson'] : {}) : (data['queryJson'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_subscribeToArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_subscribeToArray$Path = '/payments/pricing/{namespace}/{array}/subscribe';\n\n/**\n * Subscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_subscribeToArrayParamCreator = async (data: ArrayApi_subscribeToArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling subscribeToArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling subscribeToArray.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}/subscribe`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_unsubscribeFromArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const ArrayApi_unsubscribeFromArray$Path = '/payments/pricing/{namespace}/{array}/subscribe';\n\n/**\n * Unsubscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_unsubscribeFromArrayParamCreator = async (data: ArrayApi_unsubscribeFromArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling unsubscribeFromArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling unsubscribeFromArray.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}/subscribe`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_updateArrayInfo$Params {\n namespace: string,\n array: string,\n arrayInfo: ArrayInfo,\n}\n\nexport const ArrayApi_updateArrayInfo$Path = '/arrays/{namespace}/{array}/info';\n\n/**\n * update info of an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {ArrayInfo} arrayInfo array data to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_updateArrayInfoParamCreator = async (data: ArrayApi_updateArrayInfo$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updateArrayInfo.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling updateArrayInfo.');\n}\n// verify required parameter 'arrayInfo' is not null or undefined\nif (data['arrayInfo'] === null || data['arrayInfo'] === undefined) {\n throw new RequiredError('arrayInfo','Required parameter arrayInfo was null or undefined when calling updateArrayInfo.');\n}\nconst localVarPath = `/arrays/{namespace}/{array}/info`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['arrayInfo'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['arrayInfo'] !== undefined ? data['arrayInfo'] : {}) : (data['arrayInfo'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayApi_updatePricing$Params {\n namespace: string,\n array: string,\n pricingInfo: PricingInfo,\n}\n\nexport const ArrayApi_updatePricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Update pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} pricingInfo Pricing metadata to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayApi_updatePricingParamCreator = async (data: ArrayApi_updatePricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updatePricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling updatePricing.');\n}\n// verify required parameter 'pricingInfo' is not null or undefined\nif (data['pricingInfo'] === null || data['pricingInfo'] === undefined) {\n throw new RequiredError('pricingInfo','Required parameter pricingInfo was null or undefined when calling updatePricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['pricingInfo'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['pricingInfo'] !== undefined ? data['pricingInfo'] : {}) : (data['pricingInfo'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type ArrayApi_arrayActivityLog$Response = ArrayActivityLogData;\n\n/**\n * get array activity logs\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [start] Start time of window of fetch logs, unix epoch in seconds (default: seven days ago)\n * @param {number} [end] End time of window of fetch logs, unix epoch in seconds (default: current utc timestamp)\n * @param {Array<string>} [eventTypes] Event values can be one or more of the following read, write, create, delete, register, deregister, comma separated\n * @param {string} [taskId] Array task id To filter activity to\n * @param {boolean} [hasTaskId] Excludes activity log results that does not contain an array task uuid\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_arrayActivityLog(data: ArrayApi_arrayActivityLog$Params, options?: any): Promise<AxiosResponse<ArrayApi_arrayActivityLog$Response>> {\n const localVarAxiosArgs = await ArrayApi_arrayActivityLogParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_arraysBrowserOwnedGet$Response = ArrayBrowserData;\n\n/**\n * Fetch a list of all arrays that are owned directly by user or user\\'s organizations\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_arraysBrowserOwnedGet(data: ArrayApi_arraysBrowserOwnedGet$Params, options?: any): Promise<AxiosResponse<ArrayApi_arraysBrowserOwnedGet$Response>> {\n const localVarAxiosArgs = await ArrayApi_arraysBrowserOwnedGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_arraysBrowserOwnedSidebarGet$Response = ArrayBrowserSidebar;\n\n/**\n * Fetch a sidebar for arrays that are owned directly by user or user\\'s organizations\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_arraysBrowserOwnedSidebarGet(data: ArrayApi_arraysBrowserOwnedSidebarGet$Params, options?: any): Promise<AxiosResponse<ArrayApi_arraysBrowserOwnedSidebarGet$Response>> {\n const localVarAxiosArgs = await ArrayApi_arraysBrowserOwnedSidebarGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_arraysBrowserPublicGet$Response = ArrayBrowserData;\n\n/**\n * Fetch a list of all arrays that have been shared publically\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_arraysBrowserPublicGet(data: ArrayApi_arraysBrowserPublicGet$Params, options?: any): Promise<AxiosResponse<ArrayApi_arraysBrowserPublicGet$Response>> {\n const localVarAxiosArgs = await ArrayApi_arraysBrowserPublicGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_arraysBrowserPublicSidebarGet$Response = ArrayBrowserSidebar;\n\n/**\n * Fetch a sidebar of all arrays that have been shared publically\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_arraysBrowserPublicSidebarGet(data: ArrayApi_arraysBrowserPublicSidebarGet$Params, options?: any): Promise<AxiosResponse<ArrayApi_arraysBrowserPublicSidebarGet$Response>> {\n const localVarAxiosArgs = await ArrayApi_arraysBrowserPublicSidebarGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_arraysBrowserSharedGet$Response = ArrayBrowserData;\n\n/**\n * Fetch a list of all arrays that have been shared with the user\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there arrays were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_arraysBrowserSharedGet(data: ArrayApi_arraysBrowserSharedGet$Params, options?: any): Promise<AxiosResponse<ArrayApi_arraysBrowserSharedGet$Response>> {\n const localVarAxiosArgs = await ArrayApi_arraysBrowserSharedGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_arraysBrowserSharedSidebarGet$Response = ArrayBrowserSidebar;\n\n/**\n * Fetch a list of all arrays that have been shared with the user\n * @param {Array<string>} [fileType] file_type to search for, more than one can be included\n * @param {Array<string>} [excludeFileType] file_type to exclude matching array in results, more than one can be included\n * @param {Array<string>} [fileProperty] file_property key-value pair (comma separated, i.e. key,value) to search for, more than one can be included\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_arraysBrowserSharedSidebarGet(data: ArrayApi_arraysBrowserSharedSidebarGet$Params, options?: any): Promise<AxiosResponse<ArrayApi_arraysBrowserSharedSidebarGet$Response>> {\n const localVarAxiosArgs = await ArrayApi_arraysBrowserSharedSidebarGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_createPricing$Response = void;\n\n/**\n * Create pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} [pricingInfo] Array pricing details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_createPricing(data: ArrayApi_createPricing$Params, options?: any): Promise<AxiosResponse<ArrayApi_createPricing$Response>> {\n const localVarAxiosArgs = await ArrayApi_createPricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_deleteArray$Response = void;\n\n/**\n * deletes a array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_deleteArray(data: ArrayApi_deleteArray$Params, options?: any): Promise<AxiosResponse<ArrayApi_deleteArray$Response>> {\n const localVarAxiosArgs = await ArrayApi_deleteArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_deletePricing$Response = void;\n\n/**\n * Delete pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_deletePricing(data: ArrayApi_deletePricing$Params, options?: any): Promise<AxiosResponse<ArrayApi_deletePricing$Response>> {\n const localVarAxiosArgs = await ArrayApi_deletePricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_deregisterArray$Response = void;\n\n/**\n * deregister a array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_deregisterArray(data: ArrayApi_deregisterArray$Params, options?: any): Promise<AxiosResponse<ArrayApi_deregisterArray$Response>> {\n const localVarAxiosArgs = await ArrayApi_deregisterArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getActivityLogById$Response = ArrayActivityLog;\n\n/**\n * get activity log by id\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {string} id id of the activity\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getActivityLogById(data: ArrayApi_getActivityLogById$Params, options?: any): Promise<AxiosResponse<ArrayApi_getActivityLogById$Response>> {\n const localVarAxiosArgs = await ArrayApi_getActivityLogByIdParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getAllArrayInfo$Response = ArrayBrowserData;\n\n/**\n * get all array metadata user has access to\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [publicShare] Public share values can be one of exclude, only\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getAllArrayInfo(data: ArrayApi_getAllArrayInfo$Params, options?: any): Promise<AxiosResponse<ArrayApi_getAllArrayInfo$Response>> {\n const localVarAxiosArgs = await ArrayApi_getAllArrayInfoParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getArrayEndTimestamps$Response = ArrayEndTimetsampsData;\n\n/**\n * retrieve a list of timestamps from the array fragment info listing in milliseconds, paginated\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getArrayEndTimestamps(data: ArrayApi_getArrayEndTimestamps$Params, options?: any): Promise<AxiosResponse<ArrayApi_getArrayEndTimestamps$Response>> {\n const localVarAxiosArgs = await ArrayApi_getArrayEndTimestampsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getArrayInfo$Response = ArrayInfo;\n\n/**\n * get metadata on an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getArrayInfo(data: ArrayApi_getArrayInfo$Params, options?: any): Promise<AxiosResponse<ArrayApi_getArrayInfo$Response>> {\n const localVarAxiosArgs = await ArrayApi_getArrayInfoParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getArrayMetaData$Response = ArrayMetadataResponse;\n\n/**\n * get metadata from the array in json format\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [length] (optional) limit character length of returned values\n * @param {number} [version] Milliseconds since Unix epoch, metadata will use open_at functionality to open array at the specific timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getArrayMetaData(data: ArrayApi_getArrayMetaData$Params, options?: any): Promise<AxiosResponse<ArrayApi_getArrayMetaData$Response>> {\n const localVarAxiosArgs = await ArrayApi_getArrayMetaDataParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getArraySampleData$Response = ArraySample;\n\n/**\n * get an sample set of data from the array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [samples] Number of sample results to return\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getArraySampleData(data: ArrayApi_getArraySampleData$Params, options?: any): Promise<AxiosResponse<ArrayApi_getArraySampleData$Response>> {\n const localVarAxiosArgs = await ArrayApi_getArraySampleDataParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getArraySchema$Response = ArraySchema;\n\n/**\n * get an ArraySchema using a url encoded uri\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getArraySchema(data: ArrayApi_getArraySchema$Params, options?: any): Promise<AxiosResponse<ArrayApi_getArraySchema$Response>> {\n const localVarAxiosArgs = await ArrayApi_getArraySchemaParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getArraySharingPolicies$Response = Array<ArraySharing>;\n\n/**\n * Get all sharing details of the array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getArraySharingPolicies(data: ArrayApi_getArraySharingPolicies$Params, options?: any): Promise<AxiosResponse<ArrayApi_getArraySharingPolicies$Response>> {\n const localVarAxiosArgs = await ArrayApi_getArraySharingPoliciesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_getFragmentEndTimestamp$Response = number;\n\n/**\n * get fragment timestamp (start) on an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] Milliseconds since Unix epoch\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_getFragmentEndTimestamp(data: ArrayApi_getFragmentEndTimestamp$Params, options?: any): Promise<AxiosResponse<ArrayApi_getFragmentEndTimestamp$Response>> {\n const localVarAxiosArgs = await ArrayApi_getFragmentEndTimestampParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_registerArray$Response = ArrayInfo;\n\n/**\n * register an array at a specified URI registered to the given namespace\n * @param {ArrayRegisterParams} arrayMetadata metadata associated with array\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_registerArray(data: ArrayApi_registerArray$Params, options?: any): Promise<AxiosResponse<ArrayApi_registerArray$Response>> {\n const localVarAxiosArgs = await ArrayApi_registerArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_shareArray$Response = void;\n\n/**\n * Share an array with a user\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {ArraySharingRequestParams} arraySharing Namespace and list of permissions to share with. An empty list of permissions will remove the namespace, if permissions already exist they will be deleted then new ones added. In the event of a failure, the new polcies will be rolled back to prevent partial policies, and its likely the array will not be shared with the namespace at all\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_shareArray(data: ArrayApi_shareArray$Params, options?: any): Promise<AxiosResponse<ArrayApi_shareArray$Response>> {\n const localVarAxiosArgs = await ArrayApi_shareArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_submitQueryJson$Response = object;\n\n/**\n * send a query to run against a specified array/URI registered to a group/project, returns json results\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {QueryJson} queryJson query to run\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_submitQueryJson(data: ArrayApi_submitQueryJson$Params, options?: any): Promise<AxiosResponse<ArrayApi_submitQueryJson$Response>> {\n const localVarAxiosArgs = await ArrayApi_submitQueryJsonParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_subscribeToArray$Response = void;\n\n/**\n * Subscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_subscribeToArray(data: ArrayApi_subscribeToArray$Params, options?: any): Promise<AxiosResponse<ArrayApi_subscribeToArray$Response>> {\n const localVarAxiosArgs = await ArrayApi_subscribeToArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_unsubscribeFromArray$Response = void;\n\n/**\n * Unsubscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_unsubscribeFromArray(data: ArrayApi_unsubscribeFromArray$Params, options?: any): Promise<AxiosResponse<ArrayApi_unsubscribeFromArray$Response>> {\n const localVarAxiosArgs = await ArrayApi_unsubscribeFromArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_updateArrayInfo$Response = void;\n\n/**\n * update info of an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {ArrayInfo} arrayInfo array data to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_updateArrayInfo(data: ArrayApi_updateArrayInfo$Params, options?: any): Promise<AxiosResponse<ArrayApi_updateArrayInfo$Response>> {\n const localVarAxiosArgs = await ArrayApi_updateArrayInfoParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayApi_updatePricing$Response = void;\n\n/**\n * Update pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} pricingInfo Pricing metadata to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayApi_updatePricing(data: ArrayApi_updatePricing$Params, options?: any): Promise<AxiosResponse<ArrayApi_updatePricing$Response>> {\n const localVarAxiosArgs = await ArrayApi_updatePricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface ArrayTasksApi_getArrayTask$Params {\n id: string,\n}\n\nexport const ArrayTasksApi_getArrayTask$Path = '/array_tasks/{id}';\n\n/**\n * \n * @param {string} id array task id\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayTasksApi_getArrayTaskParamCreator = async (data: ArrayTasksApi_getArrayTask$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling getArrayTask.');\n}\nconst localVarPath = `/array_tasks/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface ArrayTasksApi_getArrayTasks$Params {\n namespace?: string,\n createdBy?: string,\n array?: string,\n start?: number,\n end?: number,\n page?: number,\n perPage?: number,\n type?: string,\n fileType?: Array<string>,\n excludeFileType?: Array<string>,\n status?: string,\n search?: string,\n orderby?: string,\n}\n\nexport const ArrayTasksApi_getArrayTasks$Path = '/array_tasks';\n\n/**\n * \n * @param {string} [namespace] namespace\n * @param {string} [createdBy] username to filter\n * @param {string} [array] name/uri of array that is url-encoded to filter\n * @param {number} [start] Fetch tasks created after this time, unix epoch in seconds, default 7 days ago\n * @param {number} [end] Fetch tasks created before this time, unix epoch in seconds, default now\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [type] task type, \\"QUERY\\", \\"SQL\\", \\"UDF\\"\n * @param {Array<string>} [fileType] match file_type of task array, more than one can be included\n * @param {Array<string>} [excludeFileType] exclude file_type of task arrays, more than one can be included\n * @param {string} [status] state enum \\"SUCCESS\\" \\"FAIL\\" \\"PENDING\\"\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [orderby] sort by which field valid values include start_time, name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst ArrayTasksApi_getArrayTasksParamCreator = async (data: ArrayTasksApi_getArrayTasks$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/array_tasks`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['createdBy'] !== undefined) {\n localVarQueryParameter['created_by'] = data['createdBy'];\n}\nif (data['array'] !== undefined) {\n localVarQueryParameter['array'] = data['array'];\n}\nif (data['start'] !== undefined) {\n localVarQueryParameter['start'] = data['start'];\n}\nif (data['end'] !== undefined) {\n localVarQueryParameter['end'] = data['end'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['type'] !== undefined) {\n localVarQueryParameter['type'] = data['type'];\n}\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['excludeFileType']) {\n localVarQueryParameter['exclude_file_type'] = data['excludeFileType'];\n}\nif (data['status'] !== undefined) {\n localVarQueryParameter['status'] = data['status'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type ArrayTasksApi_getArrayTask$Response = ArrayTask;\n\n/**\n * \n * @param {string} id array task id\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayTasksApi_getArrayTask(data: ArrayTasksApi_getArrayTask$Params, options?: any): Promise<AxiosResponse<ArrayTasksApi_getArrayTask$Response>> {\n const localVarAxiosArgs = await ArrayTasksApi_getArrayTaskParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type ArrayTasksApi_getArrayTasks$Response = ArrayTaskBrowserData;\n\n/**\n * \n * @param {string} [namespace] namespace\n * @param {string} [createdBy] username to filter\n * @param {string} [array] name/uri of array that is url-encoded to filter\n * @param {number} [start] Fetch tasks created after this time, unix epoch in seconds, default 7 days ago\n * @param {number} [end] Fetch tasks created before this time, unix epoch in seconds, default now\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [type] task type, \\"QUERY\\", \\"SQL\\", \\"UDF\\"\n * @param {Array<string>} [fileType] match file_type of task array, more than one can be included\n * @param {Array<string>} [excludeFileType] exclude file_type of task arrays, more than one can be included\n * @param {string} [status] state enum \\"SUCCESS\\" \\"FAIL\\" \\"PENDING\\"\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [orderby] sort by which field valid values include start_time, name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function ArrayTasksApi_getArrayTasks(data: ArrayTasksApi_getArrayTasks$Params, options?: any): Promise<AxiosResponse<ArrayTasksApi_getArrayTasks$Response>> {\n const localVarAxiosArgs = await ArrayTasksApi_getArrayTasksParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface AssetsApi_changeAssetCredentials$Params {\n namespace: string,\n changeCredentialsRequest: ChangeAssetCredentialsRequest,\n}\n\nexport const AssetsApi_changeAssetCredentials$Path = '/assets/{namespace}/change_credentials';\n\n/**\n * Changes the access credentials to the given assets\n * @param {string} namespace The namespace to send the request on behalf of.\n * @param {ChangeAssetCredentialsRequest} changeCredentialsRequest aws access credentials to store for a namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AssetsApi_changeAssetCredentialsParamCreator = async (data: AssetsApi_changeAssetCredentials$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling changeAssetCredentials.');\n}\n// verify required parameter 'changeCredentialsRequest' is not null or undefined\nif (data['changeCredentialsRequest'] === null || data['changeCredentialsRequest'] === undefined) {\n throw new RequiredError('changeCredentialsRequest','Required parameter changeCredentialsRequest was null or undefined when calling changeAssetCredentials.');\n}\nconst localVarPath = `/assets/{namespace}/change_credentials`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['changeCredentialsRequest'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['changeCredentialsRequest'] !== undefined ? data['changeCredentialsRequest'] : {}) : (data['changeCredentialsRequest'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AssetsApi_listAssetAttributes$Params {\n assetAttributesRequest: AssetAttributesRequest,\n}\n\nexport const AssetsApi_listAssetAttributes$Path = '/assets/_attributes';\n\n/**\n * This endpoint accepts a list of asset UUIDs and returns additional attributes for each asset. \n * @param {AssetAttributesRequest} assetAttributesRequest The list of assets uuids to retrieve attributes for\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AssetsApi_listAssetAttributesParamCreator = async (data: AssetsApi_listAssetAttributes$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'assetAttributesRequest' is not null or undefined\nif (data['assetAttributesRequest'] === null || data['assetAttributesRequest'] === undefined) {\n throw new RequiredError('assetAttributesRequest','Required parameter assetAttributesRequest was null or undefined when calling listAssetAttributes.');\n}\nconst localVarPath = `/assets/_attributes`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['assetAttributesRequest'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['assetAttributesRequest'] !== undefined ? data['assetAttributesRequest'] : {}) : (data['assetAttributesRequest'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AssetsApi_listAssetSummaries$Params {\n namespace: string,\n}\n\nexport const AssetsApi_listAssetSummaries$Path = '/assets/{namespace}/summaries';\n\n/**\n * List asset types for a namespace\n * @param {string} namespace namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AssetsApi_listAssetSummariesParamCreator = async (data: AssetsApi_listAssetSummaries$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling listAssetSummaries.');\n}\nconst localVarPath = `/assets/{namespace}/summaries`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AssetsApi_listAssets$Params {\n namespace: string,\n assetType?: string,\n ownershipLevel?: string,\n search?: string,\n page?: number,\n perPage?: number,\n depth?: string,\n orderBy?: string,\n}\n\nexport const AssetsApi_listAssets$Path = '/assets/{namespace}';\n\n/**\n * List assets in a namespace\n * @param {string} namespace namespace\n * @param {string} [assetType] asset_type to filter to\n * @param {string} [ownershipLevel] ownership_level to filter to (owned, public, shared)\n * @param {string} [search] search string\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [depth] depth of assets to be returned\n * @param {string} [orderBy] order by a specific property, defaults to `created_at desc` supported values are created_at, name, asset_type can also include the order type (asc or desc) separated by space i.e. `name asc` `name desc` etc. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AssetsApi_listAssetsParamCreator = async (data: AssetsApi_listAssets$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling listAssets.');\n}\nconst localVarPath = `/assets/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['assetType'] !== undefined) {\n localVarQueryParameter['asset_type'] = data['assetType'];\n}\nif (data['ownershipLevel'] !== undefined) {\n localVarQueryParameter['ownership_level'] = data['ownershipLevel'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['depth'] !== undefined) {\n localVarQueryParameter['depth'] = data['depth'];\n}\nif (data['orderBy'] !== undefined) {\n localVarQueryParameter['order_by'] = data['orderBy'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AssetsApi_listPublicAssets$Params {\n assetType?: string,\n search?: string,\n page?: number,\n perPage?: number,\n depth?: string,\n orderBy?: string,\n}\n\nexport const AssetsApi_listPublicAssets$Path = '/assets/_public';\n\n/**\n * List public assets\n * @param {string} [assetType] asset_type to filter to\n * @param {string} [search] search string\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [depth] depth of assets to be returned\n * @param {string} [orderBy] order by a specific property, defaults to `created_at desc` supported values are created_at, name, asset_type can also include the order type (asc or desc) separated by space i.e. `name asc` `name desc` etc. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AssetsApi_listPublicAssetsParamCreator = async (data: AssetsApi_listPublicAssets$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/assets/_public`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['assetType'] !== undefined) {\n localVarQueryParameter['asset_type'] = data['assetType'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['depth'] !== undefined) {\n localVarQueryParameter['depth'] = data['depth'];\n}\nif (data['orderBy'] !== undefined) {\n localVarQueryParameter['order_by'] = data['orderBy'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface AssetsApi_updateAssetMetadata$Params {\n namespace: string,\n asset: string,\n updateAssetMetadata: AssetMetadataRequest,\n}\n\nexport const AssetsApi_updateAssetMetadata$Path = '/assets/{namespace}/{asset}/metadata';\n\n/**\n * update metadata on an asset\n * @param {string} namespace namespace asset is in (an organization name or user\\'s username)\n * @param {string} asset uuid of the asset\n * @param {AssetMetadataRequest} updateAssetMetadata List of metadata entries\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst AssetsApi_updateAssetMetadataParamCreator = async (data: AssetsApi_updateAssetMetadata$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updateAssetMetadata.');\n}\n// verify required parameter 'asset' is not null or undefined\nif (data['asset'] === null || data['asset'] === undefined) {\n throw new RequiredError('asset','Required parameter asset was null or undefined when calling updateAssetMetadata.');\n}\n// verify required parameter 'updateAssetMetadata' is not null or undefined\nif (data['updateAssetMetadata'] === null || data['updateAssetMetadata'] === undefined) {\n throw new RequiredError('updateAssetMetadata','Required parameter updateAssetMetadata was null or undefined when calling updateAssetMetadata.');\n}\nconst localVarPath = `/assets/{namespace}/{asset}/metadata`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"asset\"}}`, encodeURIComponent(String(data['asset'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['updateAssetMetadata'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['updateAssetMetadata'] !== undefined ? data['updateAssetMetadata'] : {}) : (data['updateAssetMetadata'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type AssetsApi_changeAssetCredentials$Response = void;\n\n/**\n * Changes the access credentials to the given assets\n * @param {string} namespace The namespace to send the request on behalf of.\n * @param {ChangeAssetCredentialsRequest} changeCredentialsRequest aws access credentials to store for a namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AssetsApi_changeAssetCredentials(data: AssetsApi_changeAssetCredentials$Params, options?: any): Promise<AxiosResponse<AssetsApi_changeAssetCredentials$Response>> {\n const localVarAxiosArgs = await AssetsApi_changeAssetCredentialsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AssetsApi_listAssetAttributes$Response = AssetAttributesResponse;\n\n/**\n * This endpoint accepts a list of asset UUIDs and returns additional attributes for each asset. \n * @param {AssetAttributesRequest} assetAttributesRequest The list of assets uuids to retrieve attributes for\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AssetsApi_listAssetAttributes(data: AssetsApi_listAssetAttributes$Params, options?: any): Promise<AxiosResponse<AssetsApi_listAssetAttributes$Response>> {\n const localVarAxiosArgs = await AssetsApi_listAssetAttributesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AssetsApi_listAssetSummaries$Response = AssetListSummariesResponse;\n\n/**\n * List asset types for a namespace\n * @param {string} namespace namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AssetsApi_listAssetSummaries(data: AssetsApi_listAssetSummaries$Params, options?: any): Promise<AxiosResponse<AssetsApi_listAssetSummaries$Response>> {\n const localVarAxiosArgs = await AssetsApi_listAssetSummariesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AssetsApi_listAssets$Response = AssetListResponse;\n\n/**\n * List assets in a namespace\n * @param {string} namespace namespace\n * @param {string} [assetType] asset_type to filter to\n * @param {string} [ownershipLevel] ownership_level to filter to (owned, public, shared)\n * @param {string} [search] search string\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [depth] depth of assets to be returned\n * @param {string} [orderBy] order by a specific property, defaults to `created_at desc` supported values are created_at, name, asset_type can also include the order type (asc or desc) separated by space i.e. `name asc` `name desc` etc. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AssetsApi_listAssets(data: AssetsApi_listAssets$Params, options?: any): Promise<AxiosResponse<AssetsApi_listAssets$Response>> {\n const localVarAxiosArgs = await AssetsApi_listAssetsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AssetsApi_listPublicAssets$Response = AssetListResponse;\n\n/**\n * List public assets\n * @param {string} [assetType] asset_type to filter to\n * @param {string} [search] search string\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [depth] depth of assets to be returned\n * @param {string} [orderBy] order by a specific property, defaults to `created_at desc` supported values are created_at, name, asset_type can also include the order type (asc or desc) separated by space i.e. `name asc` `name desc` etc. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AssetsApi_listPublicAssets(data: AssetsApi_listPublicAssets$Params, options?: any): Promise<AxiosResponse<AssetsApi_listPublicAssets$Response>> {\n const localVarAxiosArgs = await AssetsApi_listPublicAssetsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type AssetsApi_updateAssetMetadata$Response = void;\n\n/**\n * update metadata on an asset\n * @param {string} namespace namespace asset is in (an organization name or user\\'s username)\n * @param {string} asset uuid of the asset\n * @param {AssetMetadataRequest} updateAssetMetadata List of metadata entries\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function AssetsApi_updateAssetMetadata(data: AssetsApi_updateAssetMetadata$Params, options?: any): Promise<AxiosResponse<AssetsApi_updateAssetMetadata$Response>> {\n const localVarAxiosArgs = await AssetsApi_updateAssetMetadataParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface CredentialsApi_credentialsNamespaceVerifyPost$Params {\n namespace: string,\n accessCredential: AccessCredential,\n}\n\nexport const CredentialsApi_credentialsNamespaceVerifyPost$Path = '/credentials/{namespace}/verify';\n\n/**\n * verify the credentials connection for a namespace\n * @param {string} namespace namespace the credential is attempting to be added in\n * @param {AccessCredential} accessCredential \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst CredentialsApi_credentialsNamespaceVerifyPostParamCreator = async (data: CredentialsApi_credentialsNamespaceVerifyPost$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling credentialsNamespaceVerifyPost.');\n}\n// verify required parameter 'accessCredential' is not null or undefined\nif (data['accessCredential'] === null || data['accessCredential'] === undefined) {\n throw new RequiredError('accessCredential','Required parameter accessCredential was null or undefined when calling credentialsNamespaceVerifyPost.');\n}\nconst localVarPath = `/credentials/{namespace}/verify`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['accessCredential'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['accessCredential'] !== undefined ? data['accessCredential'] : {}) : (data['accessCredential'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type CredentialsApi_credentialsNamespaceVerifyPost$Response = void;\n\n/**\n * verify the credentials connection for a namespace\n * @param {string} namespace namespace the credential is attempting to be added in\n * @param {AccessCredential} accessCredential \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function CredentialsApi_credentialsNamespaceVerifyPost(data: CredentialsApi_credentialsNamespaceVerifyPost$Params, options?: any): Promise<AxiosResponse<CredentialsApi_credentialsNamespaceVerifyPost$Response>> {\n const localVarAxiosArgs = await CredentialsApi_credentialsNamespaceVerifyPostParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface FavoritesApi_addFavorite$Params {\n namespace: string,\n name: string,\n fileType?: string,\n isDashboard?: boolean,\n}\n\nexport const FavoritesApi_addFavorite$Path = '/favorites/{namespace}/{name}';\n\n/**\n * Add a new favorite\n * @param {string} namespace The namespace of the asset\n * @param {string} name The name or uuid of the asset\n * @param {string} [fileType] file type of the array\n * @param {boolean} [isDashboard] dashboard indicator for notebooks\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst FavoritesApi_addFavoriteParamCreator = async (data: FavoritesApi_addFavorite$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling addFavorite.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling addFavorite.');\n}\nconst localVarPath = `/favorites/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['fileType'] !== undefined) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['isDashboard'] !== undefined) {\n localVarQueryParameter['is_dashboard'] = data['isDashboard'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface FavoritesApi_listFavorites$Params {\n fileType?: Array<string>,\n isDashboard?: boolean,\n page?: number,\n perPage?: number,\n}\n\nexport const FavoritesApi_listFavorites$Path = '/favorites';\n\n/**\n * Fetch a page of favorites of connected user\n * @param {Array<string>} [fileType] file type of the array\n * @param {boolean} [isDashboard] dashboard indicator for notebooks\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst FavoritesApi_listFavoritesParamCreator = async (data: FavoritesApi_listFavorites$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/favorites`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['fileType']) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['isDashboard'] !== undefined) {\n localVarQueryParameter['is_dashboard'] = data['isDashboard'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface FavoritesApi_removeFavorite$Params {\n namespace: string,\n name: string,\n fileType?: string,\n isDashboard?: boolean,\n}\n\nexport const FavoritesApi_removeFavorite$Path = '/favorites/{namespace}/{name}';\n\n/**\n * Remove specific favorite\n * @param {string} namespace The namespace of the asset\n * @param {string} name The name or uuid of the asset\n * @param {string} [fileType] file type of the array\n * @param {boolean} [isDashboard] dashboard indicator for notebooks\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst FavoritesApi_removeFavoriteParamCreator = async (data: FavoritesApi_removeFavorite$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling removeFavorite.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling removeFavorite.');\n}\nconst localVarPath = `/favorites/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['fileType'] !== undefined) {\n localVarQueryParameter['file_type'] = data['fileType'];\n}\nif (data['isDashboard'] !== undefined) {\n localVarQueryParameter['is_dashboard'] = data['isDashboard'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type FavoritesApi_addFavorite$Response = void;\n\n/**\n * Add a new favorite\n * @param {string} namespace The namespace of the asset\n * @param {string} name The name or uuid of the asset\n * @param {string} [fileType] file type of the array\n * @param {boolean} [isDashboard] dashboard indicator for notebooks\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function FavoritesApi_addFavorite(data: FavoritesApi_addFavorite$Params, options?: any): Promise<AxiosResponse<FavoritesApi_addFavorite$Response>> {\n const localVarAxiosArgs = await FavoritesApi_addFavoriteParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type FavoritesApi_listFavorites$Response = ListFavoritesResponse;\n\n/**\n * Fetch a page of favorites of connected user\n * @param {Array<string>} [fileType] file type of the array\n * @param {boolean} [isDashboard] dashboard indicator for notebooks\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function FavoritesApi_listFavorites(data: FavoritesApi_listFavorites$Params, options?: any): Promise<AxiosResponse<FavoritesApi_listFavorites$Response>> {\n const localVarAxiosArgs = await FavoritesApi_listFavoritesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type FavoritesApi_removeFavorite$Response = void;\n\n/**\n * Remove specific favorite\n * @param {string} namespace The namespace of the asset\n * @param {string} name The name or uuid of the asset\n * @param {string} [fileType] file type of the array\n * @param {boolean} [isDashboard] dashboard indicator for notebooks\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function FavoritesApi_removeFavorite(data: FavoritesApi_removeFavorite$Params, options?: any): Promise<AxiosResponse<FavoritesApi_removeFavorite$Response>> {\n const localVarAxiosArgs = await FavoritesApi_removeFavoriteParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface FilesApi_filesNamespaceArrayPreviewGet$Params {\n namespace: string,\n array: string,\n endTimestamp?: number,\n}\n\nexport const FilesApi_filesNamespaceArrayPreviewGet$Path = '/files/{namespace}/{array}/preview';\n\n/**\n * retrieve the contents of the file base64 encodeded and the mimeType\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] Milliseconds since Unix epoch, preview will use open_at functionality to open notebook at the specific timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst FilesApi_filesNamespaceArrayPreviewGetParamCreator = async (data: FilesApi_filesNamespaceArrayPreviewGet$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling filesNamespaceArrayPreviewGet.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling filesNamespaceArrayPreviewGet.');\n}\nconst localVarPath = `/files/{namespace}/{array}/preview`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface FilesApi_handleCopyNotebook$Params {\n namespace: string,\n array: string,\n notebookCopy: NotebookCopy,\n credentialsName?: string,\n endTimestamp?: number,\n}\n\nexport const FilesApi_handleCopyNotebook$Path = '/notebooks/{namespace}/{array}/copy';\n\n/**\n * Copy a tiledb notebook at the specified location\n * @param {string} namespace The namespace of the notebook\n * @param {string} array The name of the notebook\n * @param {NotebookCopy} notebookCopy Input/Output information to create a new TileDB file\n * @param {string} [credentialsName] name of the credentials\n * @param {number} [endTimestamp] Milliseconds since Unix epoch, copy will use open_at functionality to copy notebook created at the specific timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst FilesApi_handleCopyNotebookParamCreator = async (data: FilesApi_handleCopyNotebook$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling handleCopyNotebook.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling handleCopyNotebook.');\n}\n// verify required parameter 'notebookCopy' is not null or undefined\nif (data['notebookCopy'] === null || data['notebookCopy'] === undefined) {\n throw new RequiredError('notebookCopy','Required parameter notebookCopy was null or undefined when calling handleCopyNotebook.');\n}\nconst localVarPath = `/notebooks/{namespace}/{array}/copy`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['credentialsName'] !== undefined) {\n localVarQueryParameter['credentials_name'] = data['credentialsName'];\n}\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['notebookCopy'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['notebookCopy'] !== undefined ? data['notebookCopy'] : {}) : (data['notebookCopy'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface FilesApi_handleUploadFileMultipart$Params {\n namespace: string,\n outputUri: string,\n name: string,\n fileSize: number,\n mimeType: string,\n file: any,\n credentialsName?: string,\n filename?: string,\n}\n\nexport const FilesApi_handleUploadFileMultipart$Path = '/files/{namespace}/multipart-upload';\n\n/**\n * Upload a tiledb file at the specified location\n * @param {string} namespace The namespace of the file\n * @param {string} outputUri output location of the TileDB File\n * @param {string} name name to set for registered file\n * @param {number} fileSize size of the file to be uploaded\n * @param {string} mimeType Mime Type of file\n * @param {any} file file to upload\n * @param {string} [credentialsName] Optional registered access credentials to use for creation\n * @param {string} [filename] original file name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst FilesApi_handleUploadFileMultipartParamCreator = async (data: FilesApi_handleUploadFileMultipart$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling handleUploadFileMultipart.');\n}\n// verify required parameter 'outputUri' is not null or undefined\nif (data['outputUri'] === null || data['outputUri'] === undefined) {\n throw new RequiredError('outputUri','Required parameter outputUri was null or undefined when calling handleUploadFileMultipart.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling handleUploadFileMultipart.');\n}\n// verify required parameter 'fileSize' is not null or undefined\nif (data['fileSize'] === null || data['fileSize'] === undefined) {\n throw new RequiredError('fileSize','Required parameter fileSize was null or undefined when calling handleUploadFileMultipart.');\n}\n// verify required parameter 'mimeType' is not null or undefined\nif (data['mimeType'] === null || data['mimeType'] === undefined) {\n throw new RequiredError('mimeType','Required parameter mimeType was null or undefined when calling handleUploadFileMultipart.');\n}\n// verify required parameter 'file' is not null or undefined\nif (data['file'] === null || data['file'] === undefined) {\n throw new RequiredError('file','Required parameter file was null or undefined when calling handleUploadFileMultipart.');\n}\nconst localVarPath = `/files/{namespace}/multipart-upload`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nconst localVarFormParams = new FormData();\nif (data['credentialsName'] !== undefined) {\n localVarQueryParameter['credentials_name'] = data['credentialsName'];\n}\nif (data['outputUri'] !== undefined) {\n localVarQueryParameter['output_uri'] = data['outputUri'];\n}\nif (data['name'] !== undefined) {\n localVarQueryParameter['name'] = data['name'];\n}\nif (data['filename'] !== undefined) {\n localVarQueryParameter['filename'] = data['filename'];\n}\nif (data['fileSize'] !== undefined) {\n localVarQueryParameter['file_size'] = data['fileSize'];\n}\nif (data['mimeType'] !== undefined) {\n localVarQueryParameter['mime_type'] = data['mimeType'];\n}\n\n if (data['file'] !== undefined) { \n localVarFormParams.append('file', data['file'] as any);\n }\n\n\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type FilesApi_filesNamespaceArrayPreviewGet$Response = any;\n\n/**\n * retrieve the contents of the file base64 encodeded and the mimeType\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] Milliseconds since Unix epoch, preview will use open_at functionality to open notebook at the specific timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function FilesApi_filesNamespaceArrayPreviewGet(data: FilesApi_filesNamespaceArrayPreviewGet$Params, options?: any): Promise<AxiosResponse<FilesApi_filesNamespaceArrayPreviewGet$Response>> {\n const localVarAxiosArgs = await FilesApi_filesNamespaceArrayPreviewGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type FilesApi_handleCopyNotebook$Response = NotebookCopied;\n\n/**\n * Copy a tiledb notebook at the specified location\n * @param {string} namespace The namespace of the notebook\n * @param {string} array The name of the notebook\n * @param {NotebookCopy} notebookCopy Input/Output information to create a new TileDB file\n * @param {string} [credentialsName] name of the credentials\n * @param {number} [endTimestamp] Milliseconds since Unix epoch, copy will use open_at functionality to copy notebook created at the specific timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function FilesApi_handleCopyNotebook(data: FilesApi_handleCopyNotebook$Params, options?: any): Promise<AxiosResponse<FilesApi_handleCopyNotebook$Response>> {\n const localVarAxiosArgs = await FilesApi_handleCopyNotebookParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type FilesApi_handleUploadFileMultipart$Response = FileUploaded;\n\n/**\n * Upload a tiledb file at the specified location\n * @param {string} namespace The namespace of the file\n * @param {string} outputUri output location of the TileDB File\n * @param {string} name name to set for registered file\n * @param {number} fileSize size of the file to be uploaded\n * @param {string} mimeType Mime Type of file\n * @param {any} file file to upload\n * @param {string} [credentialsName] Optional registered access credentials to use for creation\n * @param {string} [filename] original file name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function FilesApi_handleUploadFileMultipart(data: FilesApi_handleUploadFileMultipart$Params, options?: any): Promise<AxiosResponse<FilesApi_handleUploadFileMultipart$Response>> {\n const localVarAxiosArgs = await FilesApi_handleUploadFileMultipartParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface GroupsApi_createGroup$Params {\n namespace: string,\n xTILEDBCLOUDACCESSCREDENTIALSNAME?: string,\n groupCreate?: GroupCreate,\n}\n\nexport const GroupsApi_createGroup$Path = '/groups/{namespace}/create';\n\n/**\n * Creates a new group in the namespace.\n * @param {string} namespace The namespace of the group\n * @param {string} [xTILEDBCLOUDACCESSCREDENTIALSNAME] Optional registered access credentials to use for creation\n * @param {GroupCreate} [groupCreate] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_createGroupParamCreator = async (data: GroupsApi_createGroup$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling createGroup.');\n}\nconst localVarPath = `/groups/{namespace}/create`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['xTILEDBCLOUDACCESSCREDENTIALSNAME'] !== undefined && data['xTILEDBCLOUDACCESSCREDENTIALSNAME'] !== null) {\n localVarHeaderParameter['X-TILEDB-CLOUD-ACCESS-CREDENTIALS-NAME'] = String(data['xTILEDBCLOUDACCESSCREDENTIALSNAME']);\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['groupCreate'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['groupCreate'] !== undefined ? data['groupCreate'] : {}) : (data['groupCreate'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_deleteGroup$Params {\n groupNamespace: string,\n groupName: string,\n recursive?: string,\n}\n\nexport const GroupsApi_deleteGroup$Path = '/groups/{group_namespace}/{group_name}/delete';\n\n/**\n * Deregisters and physically deletes a group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {string} [recursive] If true, it descends in the group and deletes every subgroup and subarray\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_deleteGroupParamCreator = async (data: GroupsApi_deleteGroup$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling deleteGroup.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling deleteGroup.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/delete`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['recursive'] !== undefined) {\n localVarQueryParameter['recursive'] = data['recursive'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_deregisterGroup$Params {\n groupNamespace: string,\n groupName: string,\n recursive?: string,\n}\n\nexport const GroupsApi_deregisterGroup$Path = '/groups/{group_namespace}/{group_name}';\n\n/**\n * Degegisters a group. The assets are not deleted nor are not relocated to any other group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {string} [recursive] If true, it descends in the group and deregisters every subgroup and subarray\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_deregisterGroupParamCreator = async (data: GroupsApi_deregisterGroup$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling deregisterGroup.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling deregisterGroup.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['recursive'] !== undefined) {\n localVarQueryParameter['recursive'] = data['recursive'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_getGroup$Params {\n groupNamespace: string,\n groupName: string,\n}\n\nexport const GroupsApi_getGroup$Path = '/groups/{group_namespace}/{group_name}';\n\n/**\n * Returns the the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_getGroupParamCreator = async (data: GroupsApi_getGroup$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling getGroup.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling getGroup.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_getGroupActivity$Params {\n groupNamespace: string,\n groupName: string,\n start?: number,\n end?: number,\n page?: number,\n perPage?: number,\n}\n\nexport const GroupsApi_getGroupActivity$Path = '/groups/{group_namespace}/{group_name}/activity';\n\n/**\n * Retrieves activity logs for all assets contained in a group (arrays and other groups) including the parent group itself.\n * @param {string} groupNamespace namespace group is in (an organization name or user\\'s username)\n * @param {string} groupName name/uri of group that is url-encoded\n * @param {number} [start] Start time of window of fetch logs, unix epoch in seconds (default: seven days ago)\n * @param {number} [end] End time of window of fetch logs, unix epoch in seconds (default: current utc timestamp)\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_getGroupActivityParamCreator = async (data: GroupsApi_getGroupActivity$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling getGroupActivity.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling getGroupActivity.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/activity`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['start'] !== undefined) {\n localVarQueryParameter['start'] = data['start'];\n}\nif (data['end'] !== undefined) {\n localVarQueryParameter['end'] = data['end'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_getGroupContents$Params {\n groupNamespace: string,\n groupName: string,\n page?: number,\n perPage?: number,\n namespace?: string,\n search?: string,\n orderby?: string,\n tag?: Array<string>,\n excludeTag?: Array<string>,\n memberType?: Array<string>,\n excludeMemberType?: Array<string>,\n permissions?: string,\n}\n\nexport const GroupsApi_getGroupContents$Path = '/groups/{group_namespace}/{group_name}/contents';\n\n/**\n * Returns the contents of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {number} [page] pagination offset for assets\n * @param {number} [perPage] pagination limit for assets\n * @param {string} [namespace] namespace to search for\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [memberType] member type to search for, more than one can be included\n * @param {Array<string>} [excludeMemberType] member type to exclude matching groups in results, more than one can be included\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_getGroupContentsParamCreator = async (data: GroupsApi_getGroupContents$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling getGroupContents.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling getGroupContents.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/contents`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['tag']) {\n localVarQueryParameter['tag'] = data['tag'];\n}\nif (data['excludeTag']) {\n localVarQueryParameter['exclude_tag'] = data['excludeTag'];\n}\nif (data['memberType']) {\n localVarQueryParameter['member_type'] = data['memberType'];\n}\nif (data['excludeMemberType']) {\n localVarQueryParameter['exclude_member_type'] = data['excludeMemberType'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_getGroupContentsFilters$Params {\n groupNamespace: string,\n groupName: string,\n}\n\nexport const GroupsApi_getGroupContentsFilters$Path = '/groups/{group_namespace}/{group_name}/contents/filters';\n\n/**\n * Fetch data to initialize filters for the group contents\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_getGroupContentsFiltersParamCreator = async (data: GroupsApi_getGroupContentsFilters$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling getGroupContentsFilters.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling getGroupContentsFilters.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/contents/filters`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_getGroupMetadata$Params {\n groupNamespace: string,\n groupName: string,\n metadataRetrieval: GroupMetadataRetrievalRequest,\n}\n\nexport const GroupsApi_getGroupMetadata$Path = '/groups/{group_namespace}/{group_name}/metadata';\n\n/**\n * get metadata on an array using the requested config\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupMetadataRetrievalRequest} metadataRetrieval \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_getGroupMetadataParamCreator = async (data: GroupsApi_getGroupMetadata$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling getGroupMetadata.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling getGroupMetadata.');\n}\n// verify required parameter 'metadataRetrieval' is not null or undefined\nif (data['metadataRetrieval'] === null || data['metadataRetrieval'] === undefined) {\n throw new RequiredError('metadataRetrieval','Required parameter metadataRetrieval was null or undefined when calling getGroupMetadata.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/metadata`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['metadataRetrieval'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['metadataRetrieval'] !== undefined ? data['metadataRetrieval'] : {}) : (data['metadataRetrieval'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_getGroupSharingPolicies$Params {\n groupNamespace: string,\n groupName: string,\n}\n\nexport const GroupsApi_getGroupSharingPolicies$Path = '/groups/{group_namespace}/{group_name}/share';\n\n/**\n * Get all sharing details of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_getGroupSharingPoliciesParamCreator = async (data: GroupsApi_getGroupSharingPolicies$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling getGroupSharingPolicies.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling getGroupSharingPolicies.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/share`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_groupsBrowserOwnedFiltersGet$Params {\n namespace?: string,\n}\n\nexport const GroupsApi_groupsBrowserOwnedFiltersGet$Path = '/groups/browser/owned/filters';\n\n/**\n * Fetch a list of all groups that have been shared with the user\n * @param {string} [namespace] namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_groupsBrowserOwnedFiltersGetParamCreator = async (data: GroupsApi_groupsBrowserOwnedFiltersGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/groups/browser/owned/filters`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type GroupsApi_groupsBrowserPublicFiltersGet$Params = void;\n\nexport const GroupsApi_groupsBrowserPublicFiltersGet$Path = '/groups/browser/public/filters';\n\n/**\n * Fetch a list of all groups that have been shared with the user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_groupsBrowserPublicFiltersGetParamCreator = async (data: GroupsApi_groupsBrowserPublicFiltersGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/groups/browser/public/filters`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_groupsBrowserSharedFiltersGet$Params {\n namespace?: string,\n}\n\nexport const GroupsApi_groupsBrowserSharedFiltersGet$Path = '/groups/browser/shared/filters';\n\n/**\n * Fetch a list of all groups that have been shared with the user\n * @param {string} [namespace] namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_groupsBrowserSharedFiltersGetParamCreator = async (data: GroupsApi_groupsBrowserSharedFiltersGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/groups/browser/shared/filters`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_listOwnedGroups$Params {\n page?: number,\n perPage?: number,\n groupType?: string,\n search?: string,\n namespace?: string,\n orderby?: string,\n permissions?: string,\n tag?: Array<string>,\n excludeTag?: Array<string>,\n flat?: boolean,\n parent?: string,\n}\n\nexport const GroupsApi_listOwnedGroups$Path = '/groups/browser/owned';\n\n/**\n * Returns one page of owned groups.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [groupType] filter by a specific group type\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {boolean} [flat] if true, ignores the nesting of groups and searches all of them\n * @param {string} [parent] search only the children of the groups with this uuid\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_listOwnedGroupsParamCreator = async (data: GroupsApi_listOwnedGroups$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/groups/browser/owned`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['groupType'] !== undefined) {\n localVarQueryParameter['group_type'] = data['groupType'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\nif (data['tag']) {\n localVarQueryParameter['tag'] = data['tag'];\n}\nif (data['excludeTag']) {\n localVarQueryParameter['exclude_tag'] = data['excludeTag'];\n}\nif (data['flat'] !== undefined) {\n localVarQueryParameter['flat'] = data['flat'];\n}\nif (data['parent'] !== undefined) {\n localVarQueryParameter['parent'] = data['parent'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_listPublicGroups$Params {\n page?: number,\n perPage?: number,\n groupType?: string,\n search?: string,\n namespace?: string,\n orderby?: string,\n permissions?: string,\n tag?: Array<string>,\n excludeTag?: Array<string>,\n flat?: boolean,\n parent?: string,\n}\n\nexport const GroupsApi_listPublicGroups$Path = '/groups/browser/public';\n\n/**\n * Returns one page of public groups.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [groupType] filter by a specific group type\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {boolean} [flat] if true, ignores the nesting of groups and searches all of them\n * @param {string} [parent] search only the children of the groups with this uuid\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_listPublicGroupsParamCreator = async (data: GroupsApi_listPublicGroups$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/groups/browser/public`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['groupType'] !== undefined) {\n localVarQueryParameter['group_type'] = data['groupType'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\nif (data['tag']) {\n localVarQueryParameter['tag'] = data['tag'];\n}\nif (data['excludeTag']) {\n localVarQueryParameter['exclude_tag'] = data['excludeTag'];\n}\nif (data['flat'] !== undefined) {\n localVarQueryParameter['flat'] = data['flat'];\n}\nif (data['parent'] !== undefined) {\n localVarQueryParameter['parent'] = data['parent'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_listSharedGroups$Params {\n page?: number,\n perPage?: number,\n groupType?: string,\n search?: string,\n namespace?: string,\n orderby?: string,\n permissions?: string,\n tag?: Array<string>,\n excludeTag?: Array<string>,\n flat?: boolean,\n parent?: string,\n sharedTo?: Array<string>,\n}\n\nexport const GroupsApi_listSharedGroups$Path = '/groups/browser/shared';\n\n/**\n * Returns one page of shared groups.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [groupType] filter by a specific group type\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {boolean} [flat] if true, ignores the nesting of groups and searches all of them\n * @param {string} [parent] search only the children of the groups with this uuid\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_listSharedGroupsParamCreator = async (data: GroupsApi_listSharedGroups$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/groups/browser/shared`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['groupType'] !== undefined) {\n localVarQueryParameter['group_type'] = data['groupType'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\nif (data['permissions'] !== undefined) {\n localVarQueryParameter['permissions'] = data['permissions'];\n}\nif (data['tag']) {\n localVarQueryParameter['tag'] = data['tag'];\n}\nif (data['excludeTag']) {\n localVarQueryParameter['exclude_tag'] = data['excludeTag'];\n}\nif (data['flat'] !== undefined) {\n localVarQueryParameter['flat'] = data['flat'];\n}\nif (data['parent'] !== undefined) {\n localVarQueryParameter['parent'] = data['parent'];\n}\nif (data['sharedTo']) {\n localVarQueryParameter['shared_to'] = data['sharedTo'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_moveGroupContents$Params {\n groupNamespace: string,\n groupName: string,\n groupMoveContents: GroupContentsMoveRequest,\n}\n\nexport const GroupsApi_moveGroupContents$Path = '/groups/{group_namespace}/{group_name}/contents/move';\n\n/**\n * Move the contents of the group to another group\n * @param {string} groupNamespace The namespace of the parent group\n * @param {string} groupName The unique name or id of the parent group\n * @param {GroupContentsMoveRequest} groupMoveContents \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_moveGroupContentsParamCreator = async (data: GroupsApi_moveGroupContents$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling moveGroupContents.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling moveGroupContents.');\n}\n// verify required parameter 'groupMoveContents' is not null or undefined\nif (data['groupMoveContents'] === null || data['groupMoveContents'] === undefined) {\n throw new RequiredError('groupMoveContents','Required parameter groupMoveContents was null or undefined when calling moveGroupContents.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/contents/move`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['groupMoveContents'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['groupMoveContents'] !== undefined ? data['groupMoveContents'] : {}) : (data['groupMoveContents'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_registerGroup$Params {\n namespace: string,\n xTILEDBCLOUDACCESSCREDENTIALSNAME?: string,\n groupRegister?: GroupRegister,\n}\n\nexport const GroupsApi_registerGroup$Path = '/groups/{namespace}/register';\n\n/**\n * Registers an existing group in the namespace.\n * @param {string} namespace The namespace of the group\n * @param {string} [xTILEDBCLOUDACCESSCREDENTIALSNAME] Optional registered access credentials to use for creation\n * @param {GroupRegister} [groupRegister] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_registerGroupParamCreator = async (data: GroupsApi_registerGroup$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling registerGroup.');\n}\nconst localVarPath = `/groups/{namespace}/register`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['xTILEDBCLOUDACCESSCREDENTIALSNAME'] !== undefined && data['xTILEDBCLOUDACCESSCREDENTIALSNAME'] !== null) {\n localVarHeaderParameter['X-TILEDB-CLOUD-ACCESS-CREDENTIALS-NAME'] = String(data['xTILEDBCLOUDACCESSCREDENTIALSNAME']);\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['groupRegister'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['groupRegister'] !== undefined ? data['groupRegister'] : {}) : (data['groupRegister'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_shareGroup$Params {\n groupNamespace: string,\n groupName: string,\n groupSharingRequest: GroupSharingRequest,\n}\n\nexport const GroupsApi_shareGroup$Path = '/groups/{group_namespace}/{group_name}/share';\n\n/**\n * Share a group with a namespace\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupSharingRequest} groupSharingRequest Namespace and list of permissions to share with. Sharing is recursive, it is applied to all reachable subgroups and arrays of the group. An empty list of permissions will remove the namespace; if permissions already exist they will be deleted then new ones added. In the event of a failure, the new policies will be rolled back to prevent partial policies, and it\\'s likely the group will not be shared with the namespace at all.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_shareGroupParamCreator = async (data: GroupsApi_shareGroup$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling shareGroup.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling shareGroup.');\n}\n// verify required parameter 'groupSharingRequest' is not null or undefined\nif (data['groupSharingRequest'] === null || data['groupSharingRequest'] === undefined) {\n throw new RequiredError('groupSharingRequest','Required parameter groupSharingRequest was null or undefined when calling shareGroup.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/share`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['groupSharingRequest'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['groupSharingRequest'] !== undefined ? data['groupSharingRequest'] : {}) : (data['groupSharingRequest'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_updateGroup$Params {\n groupNamespace: string,\n groupName: string,\n groupUpdate?: GroupUpdate,\n}\n\nexport const GroupsApi_updateGroup$Path = '/groups/{group_namespace}/{group_name}';\n\n/**\n * Changes attributes of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupUpdate} [groupUpdate] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_updateGroupParamCreator = async (data: GroupsApi_updateGroup$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling updateGroup.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling updateGroup.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['groupUpdate'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['groupUpdate'] !== undefined ? data['groupUpdate'] : {}) : (data['groupUpdate'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface GroupsApi_updateGroupContents$Params {\n groupNamespace: string,\n groupName: string,\n groupUpdateContents: GroupContentsChangesRequest,\n}\n\nexport const GroupsApi_updateGroupContents$Path = '/groups/{group_namespace}/{group_name}/contents';\n\n/**\n * Change the contents of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupContentsChangesRequest} groupUpdateContents \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst GroupsApi_updateGroupContentsParamCreator = async (data: GroupsApi_updateGroupContents$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'groupNamespace' is not null or undefined\nif (data['groupNamespace'] === null || data['groupNamespace'] === undefined) {\n throw new RequiredError('groupNamespace','Required parameter groupNamespace was null or undefined when calling updateGroupContents.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling updateGroupContents.');\n}\n// verify required parameter 'groupUpdateContents' is not null or undefined\nif (data['groupUpdateContents'] === null || data['groupUpdateContents'] === undefined) {\n throw new RequiredError('groupUpdateContents','Required parameter groupUpdateContents was null or undefined when calling updateGroupContents.');\n}\nconst localVarPath = `/groups/{group_namespace}/{group_name}/contents`\n .replace(`{${\"group_namespace\"}}`, encodeURIComponent(String(data['groupNamespace'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['groupUpdateContents'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['groupUpdateContents'] !== undefined ? data['groupUpdateContents'] : {}) : (data['groupUpdateContents'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type GroupsApi_createGroup$Response = GroupInfo;\n\n/**\n * Creates a new group in the namespace.\n * @param {string} namespace The namespace of the group\n * @param {string} [xTILEDBCLOUDACCESSCREDENTIALSNAME] Optional registered access credentials to use for creation\n * @param {GroupCreate} [groupCreate] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_createGroup(data: GroupsApi_createGroup$Params, options?: any): Promise<AxiosResponse<GroupsApi_createGroup$Response>> {\n const localVarAxiosArgs = await GroupsApi_createGroupParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_deleteGroup$Response = void;\n\n/**\n * Deregisters and physically deletes a group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {string} [recursive] If true, it descends in the group and deletes every subgroup and subarray\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_deleteGroup(data: GroupsApi_deleteGroup$Params, options?: any): Promise<AxiosResponse<GroupsApi_deleteGroup$Response>> {\n const localVarAxiosArgs = await GroupsApi_deleteGroupParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_deregisterGroup$Response = void;\n\n/**\n * Degegisters a group. The assets are not deleted nor are not relocated to any other group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {string} [recursive] If true, it descends in the group and deregisters every subgroup and subarray\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_deregisterGroup(data: GroupsApi_deregisterGroup$Params, options?: any): Promise<AxiosResponse<GroupsApi_deregisterGroup$Response>> {\n const localVarAxiosArgs = await GroupsApi_deregisterGroupParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_getGroup$Response = GroupInfo;\n\n/**\n * Returns the the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_getGroup(data: GroupsApi_getGroup$Params, options?: any): Promise<AxiosResponse<GroupsApi_getGroup$Response>> {\n const localVarAxiosArgs = await GroupsApi_getGroupParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_getGroupActivity$Response = GroupActivityResponse;\n\n/**\n * Retrieves activity logs for all assets contained in a group (arrays and other groups) including the parent group itself.\n * @param {string} groupNamespace namespace group is in (an organization name or user\\'s username)\n * @param {string} groupName name/uri of group that is url-encoded\n * @param {number} [start] Start time of window of fetch logs, unix epoch in seconds (default: seven days ago)\n * @param {number} [end] End time of window of fetch logs, unix epoch in seconds (default: current utc timestamp)\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_getGroupActivity(data: GroupsApi_getGroupActivity$Params, options?: any): Promise<AxiosResponse<GroupsApi_getGroupActivity$Response>> {\n const localVarAxiosArgs = await GroupsApi_getGroupActivityParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_getGroupContents$Response = GroupContents;\n\n/**\n * Returns the contents of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {number} [page] pagination offset for assets\n * @param {number} [perPage] pagination limit for assets\n * @param {string} [namespace] namespace to search for\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {Array<string>} [memberType] member type to search for, more than one can be included\n * @param {Array<string>} [excludeMemberType] member type to exclude matching groups in results, more than one can be included\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_getGroupContents(data: GroupsApi_getGroupContents$Params, options?: any): Promise<AxiosResponse<GroupsApi_getGroupContents$Response>> {\n const localVarAxiosArgs = await GroupsApi_getGroupContentsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_getGroupContentsFilters$Response = GroupContentsFilterData;\n\n/**\n * Fetch data to initialize filters for the group contents\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_getGroupContentsFilters(data: GroupsApi_getGroupContentsFilters$Params, options?: any): Promise<AxiosResponse<GroupsApi_getGroupContentsFilters$Response>> {\n const localVarAxiosArgs = await GroupsApi_getGroupContentsFiltersParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_getGroupMetadata$Response = GroupMetadata;\n\n/**\n * get metadata on an array using the requested config\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupMetadataRetrievalRequest} metadataRetrieval \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_getGroupMetadata(data: GroupsApi_getGroupMetadata$Params, options?: any): Promise<AxiosResponse<GroupsApi_getGroupMetadata$Response>> {\n const localVarAxiosArgs = await GroupsApi_getGroupMetadataParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_getGroupSharingPolicies$Response = Array<GroupSharing>;\n\n/**\n * Get all sharing details of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_getGroupSharingPolicies(data: GroupsApi_getGroupSharingPolicies$Params, options?: any): Promise<AxiosResponse<GroupsApi_getGroupSharingPolicies$Response>> {\n const localVarAxiosArgs = await GroupsApi_getGroupSharingPoliciesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_groupsBrowserOwnedFiltersGet$Response = GroupBrowserFilterData;\n\n/**\n * Fetch a list of all groups that have been shared with the user\n * @param {string} [namespace] namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_groupsBrowserOwnedFiltersGet(data: GroupsApi_groupsBrowserOwnedFiltersGet$Params, options?: any): Promise<AxiosResponse<GroupsApi_groupsBrowserOwnedFiltersGet$Response>> {\n const localVarAxiosArgs = await GroupsApi_groupsBrowserOwnedFiltersGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_groupsBrowserPublicFiltersGet$Response = GroupBrowserFilterData;\n\n/**\n * Fetch a list of all groups that have been shared with the user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_groupsBrowserPublicFiltersGet(data: GroupsApi_groupsBrowserPublicFiltersGet$Params, options?: any): Promise<AxiosResponse<GroupsApi_groupsBrowserPublicFiltersGet$Response>> {\n const localVarAxiosArgs = await GroupsApi_groupsBrowserPublicFiltersGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_groupsBrowserSharedFiltersGet$Response = GroupBrowserFilterData;\n\n/**\n * Fetch a list of all groups that have been shared with the user\n * @param {string} [namespace] namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_groupsBrowserSharedFiltersGet(data: GroupsApi_groupsBrowserSharedFiltersGet$Params, options?: any): Promise<AxiosResponse<GroupsApi_groupsBrowserSharedFiltersGet$Response>> {\n const localVarAxiosArgs = await GroupsApi_groupsBrowserSharedFiltersGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_listOwnedGroups$Response = GroupBrowserData;\n\n/**\n * Returns one page of owned groups.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [groupType] filter by a specific group type\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {boolean} [flat] if true, ignores the nesting of groups and searches all of them\n * @param {string} [parent] search only the children of the groups with this uuid\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_listOwnedGroups(data: GroupsApi_listOwnedGroups$Params, options?: any): Promise<AxiosResponse<GroupsApi_listOwnedGroups$Response>> {\n const localVarAxiosArgs = await GroupsApi_listOwnedGroupsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_listPublicGroups$Response = GroupBrowserData;\n\n/**\n * Returns one page of public groups.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [groupType] filter by a specific group type\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {boolean} [flat] if true, ignores the nesting of groups and searches all of them\n * @param {string} [parent] search only the children of the groups with this uuid\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_listPublicGroups(data: GroupsApi_listPublicGroups$Params, options?: any): Promise<AxiosResponse<GroupsApi_listPublicGroups$Response>> {\n const localVarAxiosArgs = await GroupsApi_listPublicGroupsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_listSharedGroups$Response = GroupBrowserData;\n\n/**\n * Returns one page of shared groups.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [groupType] filter by a specific group type\n * @param {string} [search] search string that will look at name, namespace or description fields\n * @param {string} [namespace] namespace\n * @param {string} [orderby] sort by which field valid values include last_accessed, size, name\n * @param {string} [permissions] permissions valid values include read, read_write, write, admin\n * @param {Array<string>} [tag] tag to search for, more than one can be included\n * @param {Array<string>} [excludeTag] tags to exclude matching array in results, more than one can be included\n * @param {boolean} [flat] if true, ignores the nesting of groups and searches all of them\n * @param {string} [parent] search only the children of the groups with this uuid\n * @param {Array<string>} [sharedTo] namespaces to filter results of where there groups were shared to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_listSharedGroups(data: GroupsApi_listSharedGroups$Params, options?: any): Promise<AxiosResponse<GroupsApi_listSharedGroups$Response>> {\n const localVarAxiosArgs = await GroupsApi_listSharedGroupsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_moveGroupContents$Response = void;\n\n/**\n * Move the contents of the group to another group\n * @param {string} groupNamespace The namespace of the parent group\n * @param {string} groupName The unique name or id of the parent group\n * @param {GroupContentsMoveRequest} groupMoveContents \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_moveGroupContents(data: GroupsApi_moveGroupContents$Params, options?: any): Promise<AxiosResponse<GroupsApi_moveGroupContents$Response>> {\n const localVarAxiosArgs = await GroupsApi_moveGroupContentsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_registerGroup$Response = void;\n\n/**\n * Registers an existing group in the namespace.\n * @param {string} namespace The namespace of the group\n * @param {string} [xTILEDBCLOUDACCESSCREDENTIALSNAME] Optional registered access credentials to use for creation\n * @param {GroupRegister} [groupRegister] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_registerGroup(data: GroupsApi_registerGroup$Params, options?: any): Promise<AxiosResponse<GroupsApi_registerGroup$Response>> {\n const localVarAxiosArgs = await GroupsApi_registerGroupParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_shareGroup$Response = void;\n\n/**\n * Share a group with a namespace\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupSharingRequest} groupSharingRequest Namespace and list of permissions to share with. Sharing is recursive, it is applied to all reachable subgroups and arrays of the group. An empty list of permissions will remove the namespace; if permissions already exist they will be deleted then new ones added. In the event of a failure, the new policies will be rolled back to prevent partial policies, and it\\'s likely the group will not be shared with the namespace at all.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_shareGroup(data: GroupsApi_shareGroup$Params, options?: any): Promise<AxiosResponse<GroupsApi_shareGroup$Response>> {\n const localVarAxiosArgs = await GroupsApi_shareGroupParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_updateGroup$Response = void;\n\n/**\n * Changes attributes of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupUpdate} [groupUpdate] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_updateGroup(data: GroupsApi_updateGroup$Params, options?: any): Promise<AxiosResponse<GroupsApi_updateGroup$Response>> {\n const localVarAxiosArgs = await GroupsApi_updateGroupParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type GroupsApi_updateGroupContents$Response = void;\n\n/**\n * Change the contents of the group\n * @param {string} groupNamespace The namespace of the group\n * @param {string} groupName The unique name or id of the group\n * @param {GroupContentsChangesRequest} groupUpdateContents \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function GroupsApi_updateGroupContents(data: GroupsApi_updateGroupContents$Params, options?: any): Promise<AxiosResponse<GroupsApi_updateGroupContents$Response>> {\n const localVarAxiosArgs = await GroupsApi_updateGroupContentsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface IngestionApi_ingestBioImaging$Params {\n namespace: string,\n request: BioImagingIngestionRequest,\n}\n\nexport const IngestionApi_ingestBioImaging$Path = '/ingest/{namespace}/bioimaging';\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {BioImagingIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst IngestionApi_ingestBioImagingParamCreator = async (data: IngestionApi_ingestBioImaging$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling ingestBioImaging.');\n}\n// verify required parameter 'request' is not null or undefined\nif (data['request'] === null || data['request'] === undefined) {\n throw new RequiredError('request','Required parameter request was null or undefined when calling ingestBioImaging.');\n}\nconst localVarPath = `/ingest/{namespace}/bioimaging`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['request'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['request'] !== undefined ? data['request'] : {}) : (data['request'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface IngestionApi_ingestFile$Params {\n namespace: string,\n request: FileIngestionRequest,\n}\n\nexport const IngestionApi_ingestFile$Path = '/ingest/{namespace}/file';\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {FileIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst IngestionApi_ingestFileParamCreator = async (data: IngestionApi_ingestFile$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling ingestFile.');\n}\n// verify required parameter 'request' is not null or undefined\nif (data['request'] === null || data['request'] === undefined) {\n throw new RequiredError('request','Required parameter request was null or undefined when calling ingestFile.');\n}\nconst localVarPath = `/ingest/{namespace}/file`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['request'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['request'] !== undefined ? data['request'] : {}) : (data['request'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface IngestionApi_ingestPointcloud$Params {\n namespace: string,\n request: PointCloudIngestionRequest,\n}\n\nexport const IngestionApi_ingestPointcloud$Path = '/ingest/{namespace}/pointcloud';\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {PointCloudIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst IngestionApi_ingestPointcloudParamCreator = async (data: IngestionApi_ingestPointcloud$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling ingestPointcloud.');\n}\n// verify required parameter 'request' is not null or undefined\nif (data['request'] === null || data['request'] === undefined) {\n throw new RequiredError('request','Required parameter request was null or undefined when calling ingestPointcloud.');\n}\nconst localVarPath = `/ingest/{namespace}/pointcloud`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['request'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['request'] !== undefined ? data['request'] : {}) : (data['request'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface IngestionApi_ingestSOMA$Params {\n namespace: string,\n request: SOMAIngestionRequest,\n}\n\nexport const IngestionApi_ingestSOMA$Path = '/ingest/{namespace}/soma';\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {SOMAIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst IngestionApi_ingestSOMAParamCreator = async (data: IngestionApi_ingestSOMA$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling ingestSOMA.');\n}\n// verify required parameter 'request' is not null or undefined\nif (data['request'] === null || data['request'] === undefined) {\n throw new RequiredError('request','Required parameter request was null or undefined when calling ingestSOMA.');\n}\nconst localVarPath = `/ingest/{namespace}/soma`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['request'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['request'] !== undefined ? data['request'] : {}) : (data['request'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface IngestionApi_ingestVCF$Params {\n namespace: string,\n request: VCFIngestionRequest,\n}\n\nexport const IngestionApi_ingestVCF$Path = '/ingest/{namespace}/vcf';\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {VCFIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst IngestionApi_ingestVCFParamCreator = async (data: IngestionApi_ingestVCF$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling ingestVCF.');\n}\n// verify required parameter 'request' is not null or undefined\nif (data['request'] === null || data['request'] === undefined) {\n throw new RequiredError('request','Required parameter request was null or undefined when calling ingestVCF.');\n}\nconst localVarPath = `/ingest/{namespace}/vcf`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['request'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['request'] !== undefined ? data['request'] : {}) : (data['request'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type IngestionApi_ingestBioImaging$Response = GraphStartedResponse;\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {BioImagingIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function IngestionApi_ingestBioImaging(data: IngestionApi_ingestBioImaging$Params, options?: any): Promise<AxiosResponse<IngestionApi_ingestBioImaging$Response>> {\n const localVarAxiosArgs = await IngestionApi_ingestBioImagingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type IngestionApi_ingestFile$Response = GraphStartedResponse;\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {FileIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function IngestionApi_ingestFile(data: IngestionApi_ingestFile$Params, options?: any): Promise<AxiosResponse<IngestionApi_ingestFile$Response>> {\n const localVarAxiosArgs = await IngestionApi_ingestFileParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type IngestionApi_ingestPointcloud$Response = GraphStartedResponse;\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {PointCloudIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function IngestionApi_ingestPointcloud(data: IngestionApi_ingestPointcloud$Params, options?: any): Promise<AxiosResponse<IngestionApi_ingestPointcloud$Response>> {\n const localVarAxiosArgs = await IngestionApi_ingestPointcloudParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type IngestionApi_ingestSOMA$Response = GraphStartedResponse;\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {SOMAIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function IngestionApi_ingestSOMA(data: IngestionApi_ingestSOMA$Params, options?: any): Promise<AxiosResponse<IngestionApi_ingestSOMA$Response>> {\n const localVarAxiosArgs = await IngestionApi_ingestSOMAParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type IngestionApi_ingestVCF$Response = GraphStartedResponse;\n\n/**\n * Start this ingestion job.\n * @param {string} namespace Namespace to execute the wrapper UDF\n * @param {VCFIngestionRequest} request the data to ingest\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function IngestionApi_ingestVCF(data: IngestionApi_ingestVCF$Params, options?: any): Promise<AxiosResponse<IngestionApi_ingestVCF$Response>> {\n const localVarAxiosArgs = await IngestionApi_ingestVCFParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface InvitationApi_acceptInvitation$Params {\n invitation: string,\n}\n\nexport const InvitationApi_acceptInvitation$Path = '/invitations/{invitation}';\n\n/**\n * Accepts invitation\n * @param {string} invitation the id of invitation about to be accepted\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_acceptInvitationParamCreator = async (data: InvitationApi_acceptInvitation$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'invitation' is not null or undefined\nif (data['invitation'] === null || data['invitation'] === undefined) {\n throw new RequiredError('invitation','Required parameter invitation was null or undefined when calling acceptInvitation.');\n}\nconst localVarPath = `/invitations/{invitation}`\n .replace(`{${\"invitation\"}}`, encodeURIComponent(String(data['invitation'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_cancelJoinOrganization$Params {\n invitation: string,\n organization: string,\n}\n\nexport const InvitationApi_cancelJoinOrganization$Path = '/invitations/{invitation}/{organization}/join';\n\n/**\n * Cancels join organization invitation\n * @param {string} invitation the id of invitation about to be cancelled\n * @param {string} organization name or uuid of organization\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_cancelJoinOrganizationParamCreator = async (data: InvitationApi_cancelJoinOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'invitation' is not null or undefined\nif (data['invitation'] === null || data['invitation'] === undefined) {\n throw new RequiredError('invitation','Required parameter invitation was null or undefined when calling cancelJoinOrganization.');\n}\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling cancelJoinOrganization.');\n}\nconst localVarPath = `/invitations/{invitation}/{organization}/join`\n .replace(`{${\"invitation\"}}`, encodeURIComponent(String(data['invitation'])))\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_cancelShareArray$Params {\n namespace: string,\n invitation: string,\n array: string,\n}\n\nexport const InvitationApi_cancelShareArray$Path = '/invitations/{invitation}/{namespace}/{array}/share';\n\n/**\n * Cancels array sharing invitation\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} invitation the id of invitation about to be cancelled\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_cancelShareArrayParamCreator = async (data: InvitationApi_cancelShareArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling cancelShareArray.');\n}\n// verify required parameter 'invitation' is not null or undefined\nif (data['invitation'] === null || data['invitation'] === undefined) {\n throw new RequiredError('invitation','Required parameter invitation was null or undefined when calling cancelShareArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling cancelShareArray.');\n}\nconst localVarPath = `/invitations/{invitation}/{namespace}/{array}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"invitation\"}}`, encodeURIComponent(String(data['invitation'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_cancelShareGroupByInvite$Params {\n namespace: string,\n invitation: string,\n groupName: string,\n}\n\nexport const InvitationApi_cancelShareGroupByInvite$Path = '/invitations/group/{invitation}/{namespace}/{group_name}/share';\n\n/**\n * Cancels group sharing invitation\n * @param {string} namespace namespace group is in (an organization name or user\\'s username)\n * @param {string} invitation the ID of invitation about to be cancelled\n * @param {string} groupName name/uuid of group that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_cancelShareGroupByInviteParamCreator = async (data: InvitationApi_cancelShareGroupByInvite$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling cancelShareGroupByInvite.');\n}\n// verify required parameter 'invitation' is not null or undefined\nif (data['invitation'] === null || data['invitation'] === undefined) {\n throw new RequiredError('invitation','Required parameter invitation was null or undefined when calling cancelShareGroupByInvite.');\n}\n// verify required parameter 'groupName' is not null or undefined\nif (data['groupName'] === null || data['groupName'] === undefined) {\n throw new RequiredError('groupName','Required parameter groupName was null or undefined when calling cancelShareGroupByInvite.');\n}\nconst localVarPath = `/invitations/group/{invitation}/{namespace}/{group_name}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"invitation\"}}`, encodeURIComponent(String(data['invitation'])))\n .replace(`{${\"group_name\"}}`, encodeURIComponent(String(data['groupName'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_fetchInvitations$Params {\n type: string,\n organization?: string,\n array?: string,\n group?: string,\n start?: number,\n end?: number,\n page?: number,\n perPage?: number,\n status?: string,\n orderby?: string,\n}\n\nexport const InvitationApi_fetchInvitations$Path = '/invitations';\n\n/**\n * Fetch a list of invitations\n * @param {string} type invitation type, \\"ARRAY_SHARE\\", \\"JOIN_ORGANIZATION\\"\n * @param {string} [organization] name or id of organization to filter\n * @param {string} [array] name/uri of array that is url-encoded to filter\n * @param {string} [group] name or ID of group to filter\n * @param {number} [start] start time for tasks to filter by\n * @param {number} [end] end time for tasks to filter by\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [status] Filter to only return \\"PENDING\\", \\"ACCEPTED\\"\n * @param {string} [orderby] sort by which field valid values include timestamp, array_name, organization_name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_fetchInvitationsParamCreator = async (data: InvitationApi_fetchInvitations$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'type' is not null or undefined\nif (data['type'] === null || data['type'] === undefined) {\n throw new RequiredError('type','Required parameter type was null or undefined when calling fetchInvitations.');\n}\nconst localVarPath = `/invitations`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['organization'] !== undefined) {\n localVarQueryParameter['organization'] = data['organization'];\n}\nif (data['array'] !== undefined) {\n localVarQueryParameter['array'] = data['array'];\n}\nif (data['group'] !== undefined) {\n localVarQueryParameter['group'] = data['group'];\n}\nif (data['start'] !== undefined) {\n localVarQueryParameter['start'] = data['start'];\n}\nif (data['end'] !== undefined) {\n localVarQueryParameter['end'] = data['end'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['type'] !== undefined) {\n localVarQueryParameter['type'] = data['type'];\n}\nif (data['status'] !== undefined) {\n localVarQueryParameter['status'] = data['status'];\n}\nif (data['orderby'] !== undefined) {\n localVarQueryParameter['orderby'] = data['orderby'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_getInvitationDetails$Params {\n invitation: string,\n namespace: string,\n}\n\nexport const InvitationApi_getInvitationDetails$Path = '/invitations/{invitation}/{namespace}';\n\n/**\n * Gets invitation details of an accepted invitation\n * @param {string} invitation the id of invitation about to be accepted\n * @param {string} namespace the namespace that is trying to access the invitation\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_getInvitationDetailsParamCreator = async (data: InvitationApi_getInvitationDetails$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'invitation' is not null or undefined\nif (data['invitation'] === null || data['invitation'] === undefined) {\n throw new RequiredError('invitation','Required parameter invitation was null or undefined when calling getInvitationDetails.');\n}\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getInvitationDetails.');\n}\nconst localVarPath = `/invitations/{invitation}/{namespace}`\n .replace(`{${\"invitation\"}}`, encodeURIComponent(String(data['invitation'])))\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_sendArrayInvitations$Params {\n namespace: string,\n array: string,\n emailInvite: InvitationArrayShareEmail,\n}\n\nexport const InvitationApi_sendArrayInvitations$Path = '/invitations/{namespace}/{array}/share';\n\n/**\n * Sends email to multiple recipients with sharing information regarding an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {InvitationArrayShareEmail} emailInvite list of email recipients\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_sendArrayInvitationsParamCreator = async (data: InvitationApi_sendArrayInvitations$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling sendArrayInvitations.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling sendArrayInvitations.');\n}\n// verify required parameter 'emailInvite' is not null or undefined\nif (data['emailInvite'] === null || data['emailInvite'] === undefined) {\n throw new RequiredError('emailInvite','Required parameter emailInvite was null or undefined when calling sendArrayInvitations.');\n}\nconst localVarPath = `/invitations/{namespace}/{array}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['emailInvite'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['emailInvite'] !== undefined ? data['emailInvite'] : {}) : (data['emailInvite'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_sendOrganizationInvitations$Params {\n organization: string,\n emailInvite: InvitationOrganizationJoinEmail,\n}\n\nexport const InvitationApi_sendOrganizationInvitations$Path = '/invitations/{organization}/join';\n\n/**\n * Sends email to multiple recipients with joining information regarding an organization\n * @param {string} organization name or uuid of organization\n * @param {InvitationOrganizationJoinEmail} emailInvite list of email recipients\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_sendOrganizationInvitationsParamCreator = async (data: InvitationApi_sendOrganizationInvitations$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling sendOrganizationInvitations.');\n}\n// verify required parameter 'emailInvite' is not null or undefined\nif (data['emailInvite'] === null || data['emailInvite'] === undefined) {\n throw new RequiredError('emailInvite','Required parameter emailInvite was null or undefined when calling sendOrganizationInvitations.');\n}\nconst localVarPath = `/invitations/{organization}/join`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['emailInvite'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['emailInvite'] !== undefined ? data['emailInvite'] : {}) : (data['emailInvite'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvitationApi_shareGroupByInvite$Params {\n namespace: string,\n group: string,\n emailInvite: InvitationGroupShareEmail,\n}\n\nexport const InvitationApi_shareGroupByInvite$Path = '/invitations/group/{namespace}/{group}/share';\n\n/**\n * Sends email to multiple recipients with sharing information regarding a group\n * @param {string} namespace namespace group is in (an organization name or user\\'s username)\n * @param {string} group name/uri of group that is url-encoded\n * @param {InvitationGroupShareEmail} emailInvite list of email/namespace recipients\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvitationApi_shareGroupByInviteParamCreator = async (data: InvitationApi_shareGroupByInvite$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling shareGroupByInvite.');\n}\n// verify required parameter 'group' is not null or undefined\nif (data['group'] === null || data['group'] === undefined) {\n throw new RequiredError('group','Required parameter group was null or undefined when calling shareGroupByInvite.');\n}\n// verify required parameter 'emailInvite' is not null or undefined\nif (data['emailInvite'] === null || data['emailInvite'] === undefined) {\n throw new RequiredError('emailInvite','Required parameter emailInvite was null or undefined when calling shareGroupByInvite.');\n}\nconst localVarPath = `/invitations/group/{namespace}/{group}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"group\"}}`, encodeURIComponent(String(data['group'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['emailInvite'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['emailInvite'] !== undefined ? data['emailInvite'] : {}) : (data['emailInvite'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type InvitationApi_acceptInvitation$Response = void;\n\n/**\n * Accepts invitation\n * @param {string} invitation the id of invitation about to be accepted\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_acceptInvitation(data: InvitationApi_acceptInvitation$Params, options?: any): Promise<AxiosResponse<InvitationApi_acceptInvitation$Response>> {\n const localVarAxiosArgs = await InvitationApi_acceptInvitationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_cancelJoinOrganization$Response = void;\n\n/**\n * Cancels join organization invitation\n * @param {string} invitation the id of invitation about to be cancelled\n * @param {string} organization name or uuid of organization\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_cancelJoinOrganization(data: InvitationApi_cancelJoinOrganization$Params, options?: any): Promise<AxiosResponse<InvitationApi_cancelJoinOrganization$Response>> {\n const localVarAxiosArgs = await InvitationApi_cancelJoinOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_cancelShareArray$Response = void;\n\n/**\n * Cancels array sharing invitation\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} invitation the id of invitation about to be cancelled\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_cancelShareArray(data: InvitationApi_cancelShareArray$Params, options?: any): Promise<AxiosResponse<InvitationApi_cancelShareArray$Response>> {\n const localVarAxiosArgs = await InvitationApi_cancelShareArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_cancelShareGroupByInvite$Response = void;\n\n/**\n * Cancels group sharing invitation\n * @param {string} namespace namespace group is in (an organization name or user\\'s username)\n * @param {string} invitation the ID of invitation about to be cancelled\n * @param {string} groupName name/uuid of group that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_cancelShareGroupByInvite(data: InvitationApi_cancelShareGroupByInvite$Params, options?: any): Promise<AxiosResponse<InvitationApi_cancelShareGroupByInvite$Response>> {\n const localVarAxiosArgs = await InvitationApi_cancelShareGroupByInviteParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_fetchInvitations$Response = InvitationData;\n\n/**\n * Fetch a list of invitations\n * @param {string} type invitation type, \\"ARRAY_SHARE\\", \\"JOIN_ORGANIZATION\\"\n * @param {string} [organization] name or id of organization to filter\n * @param {string} [array] name/uri of array that is url-encoded to filter\n * @param {string} [group] name or ID of group to filter\n * @param {number} [start] start time for tasks to filter by\n * @param {number} [end] end time for tasks to filter by\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [status] Filter to only return \\"PENDING\\", \\"ACCEPTED\\"\n * @param {string} [orderby] sort by which field valid values include timestamp, array_name, organization_name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_fetchInvitations(data: InvitationApi_fetchInvitations$Params, options?: any): Promise<AxiosResponse<InvitationApi_fetchInvitations$Response>> {\n const localVarAxiosArgs = await InvitationApi_fetchInvitationsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_getInvitationDetails$Response = InvitationDetails;\n\n/**\n * Gets invitation details of an accepted invitation\n * @param {string} invitation the id of invitation about to be accepted\n * @param {string} namespace the namespace that is trying to access the invitation\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_getInvitationDetails(data: InvitationApi_getInvitationDetails$Params, options?: any): Promise<AxiosResponse<InvitationApi_getInvitationDetails$Response>> {\n const localVarAxiosArgs = await InvitationApi_getInvitationDetailsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_sendArrayInvitations$Response = void;\n\n/**\n * Sends email to multiple recipients with sharing information regarding an array\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {InvitationArrayShareEmail} emailInvite list of email recipients\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_sendArrayInvitations(data: InvitationApi_sendArrayInvitations$Params, options?: any): Promise<AxiosResponse<InvitationApi_sendArrayInvitations$Response>> {\n const localVarAxiosArgs = await InvitationApi_sendArrayInvitationsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_sendOrganizationInvitations$Response = void;\n\n/**\n * Sends email to multiple recipients with joining information regarding an organization\n * @param {string} organization name or uuid of organization\n * @param {InvitationOrganizationJoinEmail} emailInvite list of email recipients\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_sendOrganizationInvitations(data: InvitationApi_sendOrganizationInvitations$Params, options?: any): Promise<AxiosResponse<InvitationApi_sendOrganizationInvitations$Response>> {\n const localVarAxiosArgs = await InvitationApi_sendOrganizationInvitationsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvitationApi_shareGroupByInvite$Response = void;\n\n/**\n * Sends email to multiple recipients with sharing information regarding a group\n * @param {string} namespace namespace group is in (an organization name or user\\'s username)\n * @param {string} group name/uri of group that is url-encoded\n * @param {InvitationGroupShareEmail} emailInvite list of email/namespace recipients\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvitationApi_shareGroupByInvite(data: InvitationApi_shareGroupByInvite$Params, options?: any): Promise<AxiosResponse<InvitationApi_shareGroupByInvite$Response>> {\n const localVarAxiosArgs = await InvitationApi_shareGroupByInviteParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface InvoiceApi_getCurrentInvoice$Params {\n namespace: string,\n}\n\nexport const InvoiceApi_getCurrentInvoice$Path = '/invoices/current/{namespace}';\n\n/**\n * \n * @param {string} namespace namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvoiceApi_getCurrentInvoiceParamCreator = async (data: InvoiceApi_getCurrentInvoice$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getCurrentInvoice.');\n}\nconst localVarPath = `/invoices/current/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvoiceApi_getPastInvoices$Params {\n namespace: string,\n start?: number,\n end?: number,\n}\n\nexport const InvoiceApi_getPastInvoices$Path = '/invoices/past/{namespace}';\n\n/**\n * \n * @param {string} namespace namespace\n * @param {number} [start] Start time of window of fetch logs, unix epoch in seconds (default: a month ago)\n * @param {number} [end] End time of window of fetch logs, unix epoch in seconds (default: current utc timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvoiceApi_getPastInvoicesParamCreator = async (data: InvoiceApi_getPastInvoices$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getPastInvoices.');\n}\nconst localVarPath = `/invoices/past/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['start'] !== undefined) {\n localVarQueryParameter['start'] = data['start'];\n}\nif (data['end'] !== undefined) {\n localVarQueryParameter['end'] = data['end'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface InvoiceApi_payInvoice$Params {\n namespace: string,\n invoice: string,\n}\n\nexport const InvoiceApi_payInvoice$Path = '/invoices/payment/{namespace}/{invoice}';\n\n/**\n * Manual payment of an open invoice\n * @param {string} namespace namespace\n * @param {string} invoice invoice id to pay\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst InvoiceApi_payInvoiceParamCreator = async (data: InvoiceApi_payInvoice$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling payInvoice.');\n}\n// verify required parameter 'invoice' is not null or undefined\nif (data['invoice'] === null || data['invoice'] === undefined) {\n throw new RequiredError('invoice','Required parameter invoice was null or undefined when calling payInvoice.');\n}\nconst localVarPath = `/invoices/payment/{namespace}/{invoice}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"invoice\"}}`, encodeURIComponent(String(data['invoice'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type InvoiceApi_getCurrentInvoice$Response = Invoice;\n\n/**\n * \n * @param {string} namespace namespace\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvoiceApi_getCurrentInvoice(data: InvoiceApi_getCurrentInvoice$Params, options?: any): Promise<AxiosResponse<InvoiceApi_getCurrentInvoice$Response>> {\n const localVarAxiosArgs = await InvoiceApi_getCurrentInvoiceParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvoiceApi_getPastInvoices$Response = Array<Invoice>;\n\n/**\n * \n * @param {string} namespace namespace\n * @param {number} [start] Start time of window of fetch logs, unix epoch in seconds (default: a month ago)\n * @param {number} [end] End time of window of fetch logs, unix epoch in seconds (default: current utc timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvoiceApi_getPastInvoices(data: InvoiceApi_getPastInvoices$Params, options?: any): Promise<AxiosResponse<InvoiceApi_getPastInvoices$Response>> {\n const localVarAxiosArgs = await InvoiceApi_getPastInvoicesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type InvoiceApi_payInvoice$Response = void;\n\n/**\n * Manual payment of an open invoice\n * @param {string} namespace namespace\n * @param {string} invoice invoice id to pay\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function InvoiceApi_payInvoice(data: InvoiceApi_payInvoice$Params, options?: any): Promise<AxiosResponse<InvoiceApi_payInvoice$Response>> {\n const localVarAxiosArgs = await InvoiceApi_payInvoiceParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface MlModelApi_getMLModelPreview$Params {\n namespace: string,\n array: string,\n endTimestamp?: number,\n}\n\nexport const MlModelApi_getMLModelPreview$Path = '/ml_models/{namespace}/{array}/preview';\n\n/**\n * retrieve the preview of the model\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open ml model at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst MlModelApi_getMLModelPreviewParamCreator = async (data: MlModelApi_getMLModelPreview$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getMLModelPreview.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getMLModelPreview.');\n}\nconst localVarPath = `/ml_models/{namespace}/{array}/preview`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type MlModelApi_getMLModelPreview$Response = Preview;\n\n/**\n * retrieve the preview of the model\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open ml model at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function MlModelApi_getMLModelPreview(data: MlModelApi_getMLModelPreview$Params, options?: any): Promise<AxiosResponse<MlModelApi_getMLModelPreview$Response>> {\n const localVarAxiosArgs = await MlModelApi_getMLModelPreviewParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface NotebookApi_getNotebookServerStatus$Params {\n namespace: string,\n}\n\nexport const NotebookApi_getNotebookServerStatus$Path = '/notebooks/server/{namespace}/status';\n\n/**\n * Get status of the notebook server\n * @param {string} namespace namespace notebook is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotebookApi_getNotebookServerStatusParamCreator = async (data: NotebookApi_getNotebookServerStatus$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getNotebookServerStatus.');\n}\nconst localVarPath = `/notebooks/server/{namespace}/status`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotebookApi_handleUploadNotebook$Params {\n namespace: string,\n fileSize: number,\n inputFile: any,\n credentialsName?: string,\n outputUri?: string,\n name?: string,\n}\n\nexport const NotebookApi_handleUploadNotebook$Path = '/notebooks/{namespace}/upload';\n\n/**\n * Upload a notebook at the specified location\n * @param {string} namespace The namespace of the notebook\n * @param {number} fileSize size of the file to be uploaded\n * @param {any} inputFile the notebook to upload\n * @param {string} [credentialsName] Optional registered access credentials to use for creation\n * @param {string} [outputUri] output location of the TileDB File\n * @param {string} [name] name to set for registered file\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotebookApi_handleUploadNotebookParamCreator = async (data: NotebookApi_handleUploadNotebook$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling handleUploadNotebook.');\n}\n// verify required parameter 'fileSize' is not null or undefined\nif (data['fileSize'] === null || data['fileSize'] === undefined) {\n throw new RequiredError('fileSize','Required parameter fileSize was null or undefined when calling handleUploadNotebook.');\n}\n// verify required parameter 'inputFile' is not null or undefined\nif (data['inputFile'] === null || data['inputFile'] === undefined) {\n throw new RequiredError('inputFile','Required parameter inputFile was null or undefined when calling handleUploadNotebook.');\n}\nconst localVarPath = `/notebooks/{namespace}/upload`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nconst localVarFormParams = new FormData();\nif (data['credentialsName'] !== undefined) {\n localVarQueryParameter['credentials_name'] = data['credentialsName'];\n}\nif (data['fileSize'] !== undefined) {\n localVarQueryParameter['file_size'] = data['fileSize'];\n}\nif (data['outputUri'] !== undefined) {\n localVarQueryParameter['output_uri'] = data['outputUri'];\n}\nif (data['name'] !== undefined) {\n localVarQueryParameter['name'] = data['name'];\n}\n\n if (data['inputFile'] !== undefined) { \n localVarFormParams.append('input_file', data['inputFile'] as any);\n }\n\n\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotebookApi_shutdownNotebookServer$Params {\n namespace: string,\n region?: string,\n}\n\nexport const NotebookApi_shutdownNotebookServer$Path = '/notebooks/server/{namespace}';\n\n/**\n * Shut down a notebook server\n * @param {string} namespace namespace notebook is in (an organization name or user\\'s username)\n * @param {string} [region] The AWS region where notebook POD is running\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotebookApi_shutdownNotebookServerParamCreator = async (data: NotebookApi_shutdownNotebookServer$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling shutdownNotebookServer.');\n}\nconst localVarPath = `/notebooks/server/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['region'] !== undefined) {\n localVarQueryParameter['region'] = data['region'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type NotebookApi_getNotebookServerStatus$Response = Array<NotebookStatus>;\n\n/**\n * Get status of the notebook server\n * @param {string} namespace namespace notebook is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotebookApi_getNotebookServerStatus(data: NotebookApi_getNotebookServerStatus$Params, options?: any): Promise<AxiosResponse<NotebookApi_getNotebookServerStatus$Response>> {\n const localVarAxiosArgs = await NotebookApi_getNotebookServerStatusParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotebookApi_handleUploadNotebook$Response = NotebookUploaded;\n\n/**\n * Upload a notebook at the specified location\n * @param {string} namespace The namespace of the notebook\n * @param {number} fileSize size of the file to be uploaded\n * @param {any} inputFile the notebook to upload\n * @param {string} [credentialsName] Optional registered access credentials to use for creation\n * @param {string} [outputUri] output location of the TileDB File\n * @param {string} [name] name to set for registered file\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotebookApi_handleUploadNotebook(data: NotebookApi_handleUploadNotebook$Params, options?: any): Promise<AxiosResponse<NotebookApi_handleUploadNotebook$Response>> {\n const localVarAxiosArgs = await NotebookApi_handleUploadNotebookParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotebookApi_shutdownNotebookServer$Response = void;\n\n/**\n * Shut down a notebook server\n * @param {string} namespace namespace notebook is in (an organization name or user\\'s username)\n * @param {string} [region] The AWS region where notebook POD is running\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotebookApi_shutdownNotebookServer(data: NotebookApi_shutdownNotebookServer$Params, options?: any): Promise<AxiosResponse<NotebookApi_shutdownNotebookServer$Response>> {\n const localVarAxiosArgs = await NotebookApi_shutdownNotebookServerParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface NotebooksApi_notebooksNamespaceArrayDownloadGet$Params {\n namespace: string,\n array: string,\n endTimestamp?: number,\n}\n\nexport const NotebooksApi_notebooksNamespaceArrayDownloadGet$Path = '/notebooks/{namespace}/{array}/download';\n\n/**\n * retrieve the raw exec value and language\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open notebook at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotebooksApi_notebooksNamespaceArrayDownloadGetParamCreator = async (data: NotebooksApi_notebooksNamespaceArrayDownloadGet$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling notebooksNamespaceArrayDownloadGet.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling notebooksNamespaceArrayDownloadGet.');\n}\nconst localVarPath = `/notebooks/{namespace}/{array}/download`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotebooksApi_notebooksNamespaceArrayEndTimestampsGet$Params {\n namespace: string,\n array: string,\n page?: number,\n perPage?: number,\n}\n\nexport const NotebooksApi_notebooksNamespaceArrayEndTimestampsGet$Path = '/notebooks/{namespace}/{array}/end_timestamps';\n\n/**\n * retrieve a list of timestamps from the array fragment info listing in milliseconds\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotebooksApi_notebooksNamespaceArrayEndTimestampsGetParamCreator = async (data: NotebooksApi_notebooksNamespaceArrayEndTimestampsGet$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling notebooksNamespaceArrayEndTimestampsGet.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling notebooksNamespaceArrayEndTimestampsGet.');\n}\nconst localVarPath = `/notebooks/{namespace}/{array}/end_timestamps`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotebooksApi_notebooksNamespaceArrayPreviewGet$Params {\n namespace: string,\n array: string,\n endTimestamp?: number,\n}\n\nexport const NotebooksApi_notebooksNamespaceArrayPreviewGet$Path = '/notebooks/{namespace}/{array}/preview';\n\n/**\n * retrieve the raw exec value and language\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open notebook at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotebooksApi_notebooksNamespaceArrayPreviewGetParamCreator = async (data: NotebooksApi_notebooksNamespaceArrayPreviewGet$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling notebooksNamespaceArrayPreviewGet.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling notebooksNamespaceArrayPreviewGet.');\n}\nconst localVarPath = `/notebooks/{namespace}/{array}/preview`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotebooksApi_notebooksNamespaceArrayPrunePost$Params {\n namespace: string,\n array: string,\n keepVersions?: number,\n}\n\nexport const NotebooksApi_notebooksNamespaceArrayPrunePost$Path = '/notebooks/{namespace}/{array}/prune';\n\n/**\n * prune fragments of the notebook\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [keepVersions] The number of most recents fragment to preserve\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotebooksApi_notebooksNamespaceArrayPrunePostParamCreator = async (data: NotebooksApi_notebooksNamespaceArrayPrunePost$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling notebooksNamespaceArrayPrunePost.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling notebooksNamespaceArrayPrunePost.');\n}\nconst localVarPath = `/notebooks/{namespace}/{array}/prune`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['keepVersions'] !== undefined) {\n localVarQueryParameter['keep_versions'] = data['keepVersions'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type NotebooksApi_notebooksNamespaceArrayDownloadGet$Response = Preview;\n\n/**\n * retrieve the raw exec value and language\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open notebook at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotebooksApi_notebooksNamespaceArrayDownloadGet(data: NotebooksApi_notebooksNamespaceArrayDownloadGet$Params, options?: any): Promise<AxiosResponse<NotebooksApi_notebooksNamespaceArrayDownloadGet$Response>> {\n const localVarAxiosArgs = await NotebooksApi_notebooksNamespaceArrayDownloadGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotebooksApi_notebooksNamespaceArrayEndTimestampsGet$Response = ArrayEndTimetsampsData;\n\n/**\n * retrieve a list of timestamps from the array fragment info listing in milliseconds\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotebooksApi_notebooksNamespaceArrayEndTimestampsGet(data: NotebooksApi_notebooksNamespaceArrayEndTimestampsGet$Params, options?: any): Promise<AxiosResponse<NotebooksApi_notebooksNamespaceArrayEndTimestampsGet$Response>> {\n const localVarAxiosArgs = await NotebooksApi_notebooksNamespaceArrayEndTimestampsGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotebooksApi_notebooksNamespaceArrayPreviewGet$Response = Preview;\n\n/**\n * retrieve the raw exec value and language\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open notebook at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotebooksApi_notebooksNamespaceArrayPreviewGet(data: NotebooksApi_notebooksNamespaceArrayPreviewGet$Params, options?: any): Promise<AxiosResponse<NotebooksApi_notebooksNamespaceArrayPreviewGet$Response>> {\n const localVarAxiosArgs = await NotebooksApi_notebooksNamespaceArrayPreviewGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotebooksApi_notebooksNamespaceArrayPrunePost$Response = void;\n\n/**\n * prune fragments of the notebook\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [keepVersions] The number of most recents fragment to preserve\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotebooksApi_notebooksNamespaceArrayPrunePost(data: NotebooksApi_notebooksNamespaceArrayPrunePost$Params, options?: any): Promise<AxiosResponse<NotebooksApi_notebooksNamespaceArrayPrunePost$Response>> {\n const localVarAxiosArgs = await NotebooksApi_notebooksNamespaceArrayPrunePostParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface NotificationsApi_changeNotificationStatus$Params {\n namespace: string,\n statusChange: NotificationStatusChange,\n}\n\nexport const NotificationsApi_changeNotificationStatus$Path = '/notifications/{namespace}/status';\n\n/**\n * Change status of the given notifications (to read/unread)\n * @param {string} namespace the namespace we want notifications from\n * @param {NotificationStatusChange} statusChange The request body to change the notification status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotificationsApi_changeNotificationStatusParamCreator = async (data: NotificationsApi_changeNotificationStatus$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling changeNotificationStatus.');\n}\n// verify required parameter 'statusChange' is not null or undefined\nif (data['statusChange'] === null || data['statusChange'] === undefined) {\n throw new RequiredError('statusChange','Required parameter statusChange was null or undefined when calling changeNotificationStatus.');\n}\nconst localVarPath = `/notifications/{namespace}/status`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['statusChange'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['statusChange'] !== undefined ? data['statusChange'] : {}) : (data['statusChange'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotificationsApi_deleteNotifications$Params {\n namespace: string,\n page?: number,\n perPage?: number,\n status?: string,\n notifications?: Array<string>,\n}\n\nexport const NotificationsApi_deleteNotifications$Path = '/notifications/{namespace}';\n\n/**\n * Delete the given notifications of a namespace\n * @param {string} namespace the namespace we want notifications from\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [status] the notifications status (read/unread)\n * @param {Array<string>} [notifications] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotificationsApi_deleteNotificationsParamCreator = async (data: NotificationsApi_deleteNotifications$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deleteNotifications.');\n}\nconst localVarPath = `/notifications/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['status'] !== undefined) {\n localVarQueryParameter['status'] = data['status'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['notifications'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['notifications'] !== undefined ? data['notifications'] : {}) : (data['notifications'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotificationsApi_getNotificationsCount$Params {\n namespace: string,\n status?: string,\n}\n\nexport const NotificationsApi_getNotificationsCount$Path = '/notifications/{namespace}/count';\n\n/**\n * Count of notifications of a given namespace\n * @param {string} namespace the namespace we want notifications from\n * @param {string} [status] the status of notifications to be counted (read/unread)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotificationsApi_getNotificationsCountParamCreator = async (data: NotificationsApi_getNotificationsCount$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getNotificationsCount.');\n}\nconst localVarPath = `/notifications/{namespace}/count`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['status'] !== undefined) {\n localVarQueryParameter['status'] = data['status'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotificationsApi_listNotifications$Params {\n namespace: string,\n page?: number,\n perPage?: number,\n status?: string,\n}\n\nexport const NotificationsApi_listNotifications$Path = '/notifications/{namespace}';\n\n/**\n * List notifications of a given namespace\n * @param {string} namespace the namespace we want notifications from\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [status] the notifications status (read/unread)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotificationsApi_listNotificationsParamCreator = async (data: NotificationsApi_listNotifications$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling listNotifications.');\n}\nconst localVarPath = `/notifications/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['status'] !== undefined) {\n localVarQueryParameter['status'] = data['status'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface NotificationsApi_markAllNotificationsAsRead$Params {\n namespace: string,\n}\n\nexport const NotificationsApi_markAllNotificationsAsRead$Path = '/notifications/{namespace}/read_all';\n\n/**\n * Mark all notifications as read\n * @param {string} namespace the namespace that the notifications belong to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst NotificationsApi_markAllNotificationsAsReadParamCreator = async (data: NotificationsApi_markAllNotificationsAsRead$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling markAllNotificationsAsRead.');\n}\nconst localVarPath = `/notifications/{namespace}/read_all`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type NotificationsApi_changeNotificationStatus$Response = void;\n\n/**\n * Change status of the given notifications (to read/unread)\n * @param {string} namespace the namespace we want notifications from\n * @param {NotificationStatusChange} statusChange The request body to change the notification status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotificationsApi_changeNotificationStatus(data: NotificationsApi_changeNotificationStatus$Params, options?: any): Promise<AxiosResponse<NotificationsApi_changeNotificationStatus$Response>> {\n const localVarAxiosArgs = await NotificationsApi_changeNotificationStatusParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotificationsApi_deleteNotifications$Response = void;\n\n/**\n * Delete the given notifications of a namespace\n * @param {string} namespace the namespace we want notifications from\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [status] the notifications status (read/unread)\n * @param {Array<string>} [notifications] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotificationsApi_deleteNotifications(data: NotificationsApi_deleteNotifications$Params, options?: any): Promise<AxiosResponse<NotificationsApi_deleteNotifications$Response>> {\n const localVarAxiosArgs = await NotificationsApi_deleteNotificationsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotificationsApi_getNotificationsCount$Response = number;\n\n/**\n * Count of notifications of a given namespace\n * @param {string} namespace the namespace we want notifications from\n * @param {string} [status] the status of notifications to be counted (read/unread)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotificationsApi_getNotificationsCount(data: NotificationsApi_getNotificationsCount$Params, options?: any): Promise<AxiosResponse<NotificationsApi_getNotificationsCount$Response>> {\n const localVarAxiosArgs = await NotificationsApi_getNotificationsCountParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotificationsApi_listNotifications$Response = NotificationListResponse;\n\n/**\n * List notifications of a given namespace\n * @param {string} namespace the namespace we want notifications from\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [status] the notifications status (read/unread)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotificationsApi_listNotifications(data: NotificationsApi_listNotifications$Params, options?: any): Promise<AxiosResponse<NotificationsApi_listNotifications$Response>> {\n const localVarAxiosArgs = await NotificationsApi_listNotificationsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type NotificationsApi_markAllNotificationsAsRead$Response = void;\n\n/**\n * Mark all notifications as read\n * @param {string} namespace the namespace that the notifications belong to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function NotificationsApi_markAllNotificationsAsRead(data: NotificationsApi_markAllNotificationsAsRead$Params, options?: any): Promise<AxiosResponse<NotificationsApi_markAllNotificationsAsRead$Response>> {\n const localVarAxiosArgs = await NotificationsApi_markAllNotificationsAsReadParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface OrganizationApi_addCredential$Params {\n namespace: string,\n accessCredential: AccessCredentialUpdate,\n page?: number,\n perPage?: number,\n}\n\nexport const OrganizationApi_addCredential$Path = '/credentials/{namespace}';\n\n/**\n * Create a new credential for the namespace\n * @param {string} namespace namespace\n * @param {AccessCredentialUpdate} accessCredential The new credentials to be created.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_addCredentialParamCreator = async (data: OrganizationApi_addCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling addCredential.');\n}\n// verify required parameter 'accessCredential' is not null or undefined\nif (data['accessCredential'] === null || data['accessCredential'] === undefined) {\n throw new RequiredError('accessCredential','Required parameter accessCredential was null or undefined when calling addCredential.');\n}\nconst localVarPath = `/credentials/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['accessCredential'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['accessCredential'] !== undefined ? data['accessCredential'] : {}) : (data['accessCredential'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_addUserToOrganization$Params {\n organization: string,\n username: string,\n user: CreateOrganizationUserParams,\n}\n\nexport const OrganizationApi_addUserToOrganization$Path = '/organizations/{organization}/users/{username}';\n\n/**\n * add a user to an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {CreateOrganizationUserParams} user user details to add\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_addUserToOrganizationParamCreator = async (data: OrganizationApi_addUserToOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling addUserToOrganization.');\n}\n// verify required parameter 'username' is not null or undefined\nif (data['username'] === null || data['username'] === undefined) {\n throw new RequiredError('username','Required parameter username was null or undefined when calling addUserToOrganization.');\n}\n// verify required parameter 'user' is not null or undefined\nif (data['user'] === null || data['user'] === undefined) {\n throw new RequiredError('user','Required parameter user was null or undefined when calling addUserToOrganization.');\n}\nconst localVarPath = `/organizations/{organization}/users/{username}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"username\"}}`, encodeURIComponent(String(data['username'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['user'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['user'] !== undefined ? data['user'] : {}) : (data['user'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_checkSSODomain$Params {\n organization: string,\n uuid: string,\n}\n\nexport const OrganizationApi_checkSSODomain$Path = '/organizations/{organization}/sso_domains/{uuid}/run_check';\n\n/**\n * Immediately verify ownership of the specified SSO domain ownership claim. \n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_checkSSODomainParamCreator = async (data: OrganizationApi_checkSSODomain$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling checkSSODomain.');\n}\n// verify required parameter 'uuid' is not null or undefined\nif (data['uuid'] === null || data['uuid'] === undefined) {\n throw new RequiredError('uuid','Required parameter uuid was null or undefined when calling checkSSODomain.');\n}\nconst localVarPath = `/organizations/{organization}/sso_domains/{uuid}/run_check`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"uuid\"}}`, encodeURIComponent(String(data['uuid'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_createOrganization$Params {\n organization: string,\n organizationDetails: OrganizationCreateParams,\n}\n\nexport const OrganizationApi_createOrganization$Path = '/organizations/{organization}';\n\n/**\n * Create an organization\n * @param {string} organization organization name\n * @param {OrganizationCreateParams} organizationDetails organization to create\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_createOrganizationParamCreator = async (data: OrganizationApi_createOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling createOrganization.');\n}\n// verify required parameter 'organizationDetails' is not null or undefined\nif (data['organizationDetails'] === null || data['organizationDetails'] === undefined) {\n throw new RequiredError('organizationDetails','Required parameter organizationDetails was null or undefined when calling createOrganization.');\n}\nconst localVarPath = `/organizations/{organization}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['organizationDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['organizationDetails'] !== undefined ? data['organizationDetails'] : {}) : (data['organizationDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_createPricing$Params {\n namespace: string,\n array: string,\n pricingInfo?: PricingInfo,\n}\n\nexport const OrganizationApi_createPricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Create pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} [pricingInfo] Array pricing details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_createPricingParamCreator = async (data: OrganizationApi_createPricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling createPricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling createPricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['pricingInfo'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['pricingInfo'] !== undefined ? data['pricingInfo'] : {}) : (data['pricingInfo'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_createSSODomain$Params {\n organization: string,\n config: SSODomainConfig,\n}\n\nexport const OrganizationApi_createSSODomain$Path = '/organizations/{organization}/sso_domain';\n\n/**\n * Create a new SSO connection that connects this organization to this domain. \n * @param {string} organization organization name\n * @param {SSODomainConfig} config The SSO connection to create.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_createSSODomainParamCreator = async (data: OrganizationApi_createSSODomain$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling createSSODomain.');\n}\n// verify required parameter 'config' is not null or undefined\nif (data['config'] === null || data['config'] === undefined) {\n throw new RequiredError('config','Required parameter config was null or undefined when calling createSSODomain.');\n}\nconst localVarPath = `/organizations/{organization}/sso_domain`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['config'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['config'] !== undefined ? data['config'] : {}) : (data['config'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_deleteCredential$Params {\n namespace: string,\n name: string,\n}\n\nexport const OrganizationApi_deleteCredential$Path = '/credentials/{namespace}/{name}';\n\n/**\n * Delete the named access credential. Any arrays still set to use this credential will use the namespace\\'s default and may become unreachable.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_deleteCredentialParamCreator = async (data: OrganizationApi_deleteCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deleteCredential.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling deleteCredential.');\n}\nconst localVarPath = `/credentials/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_deleteOnboardingItems$Params {\n namespace: string,\n organization?: string,\n}\n\nexport const OrganizationApi_deleteOnboardingItems$Path = '/onboarding/{namespace}';\n\n/**\n * Deletes completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_deleteOnboardingItemsParamCreator = async (data: OrganizationApi_deleteOnboardingItems$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deleteOnboardingItems.');\n}\nconst localVarPath = `/onboarding/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['organization'] !== undefined) {\n localVarQueryParameter['organization'] = data['organization'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_deleteOrganization$Params {\n organization: string,\n}\n\nexport const OrganizationApi_deleteOrganization$Path = '/organizations/{organization}';\n\n/**\n * Delete organization\n * @param {string} organization organization name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_deleteOrganizationParamCreator = async (data: OrganizationApi_deleteOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling deleteOrganization.');\n}\nconst localVarPath = `/organizations/{organization}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_deletePricing$Params {\n namespace: string,\n array: string,\n}\n\nexport const OrganizationApi_deletePricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Delete pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_deletePricingParamCreator = async (data: OrganizationApi_deletePricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deletePricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling deletePricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_deleteSSODomain$Params {\n organization: string,\n uuid: string,\n}\n\nexport const OrganizationApi_deleteSSODomain$Path = '/organizations/{organization}/sso_domains/{uuid}';\n\n/**\n * Deletes the configuration for the given SSO connection.\n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_deleteSSODomainParamCreator = async (data: OrganizationApi_deleteSSODomain$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling deleteSSODomain.');\n}\n// verify required parameter 'uuid' is not null or undefined\nif (data['uuid'] === null || data['uuid'] === undefined) {\n throw new RequiredError('uuid','Required parameter uuid was null or undefined when calling deleteSSODomain.');\n}\nconst localVarPath = `/organizations/{organization}/sso_domains/{uuid}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"uuid\"}}`, encodeURIComponent(String(data['uuid'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_deleteUserFromOrganization$Params {\n organization: string,\n username: string,\n}\n\nexport const OrganizationApi_deleteUserFromOrganization$Path = '/organizations/{organization}/users/{username}';\n\n/**\n * delete a user from an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_deleteUserFromOrganizationParamCreator = async (data: OrganizationApi_deleteUserFromOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling deleteUserFromOrganization.');\n}\n// verify required parameter 'username' is not null or undefined\nif (data['username'] === null || data['username'] === undefined) {\n throw new RequiredError('username','Required parameter username was null or undefined when calling deleteUserFromOrganization.');\n}\nconst localVarPath = `/organizations/{organization}/users/{username}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"username\"}}`, encodeURIComponent(String(data['username'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type OrganizationApi_fetchAllOrganizations$Params = void;\n\nexport const OrganizationApi_fetchAllOrganizations$Path = '/organizations';\n\n/**\n * Fetches all organizations that the user is member of\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_fetchAllOrganizationsParamCreator = async (data: OrganizationApi_fetchAllOrganizations$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/organizations`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getBillingOverview$Params {\n namespace?: string,\n}\n\nexport const OrganizationApi_getBillingOverview$Path = '/payments/billing-overview';\n\n/**\n * Get billing overview\n * @param {string} [namespace] namespace to filter, defaults to requesting user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getBillingOverviewParamCreator = async (data: OrganizationApi_getBillingOverview$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/payments/billing-overview`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getChargeOperationsAllowed$Params {\n namespace: string,\n}\n\nexport const OrganizationApi_getChargeOperationsAllowed$Path = '/charges/allowed/{namespace}';\n\n/**\n * Get whether operations which incur charges are allowed\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getChargeOperationsAllowedParamCreator = async (data: OrganizationApi_getChargeOperationsAllowed$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getChargeOperationsAllowed.');\n}\nconst localVarPath = `/charges/allowed/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getCredential$Params {\n namespace: string,\n name: string,\n}\n\nexport const OrganizationApi_getCredential$Path = '/credentials/{namespace}/{name}';\n\n/**\n * Retrieve an access credential by name\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getCredentialParamCreator = async (data: OrganizationApi_getCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getCredential.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling getCredential.');\n}\nconst localVarPath = `/credentials/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getNamespaceAutocomplete$Params {\n input: string,\n}\n\nexport const OrganizationApi_getNamespaceAutocomplete$Path = '/organizations/namespace/autocomplete';\n\n/**\n * Fetch list of usernames and organization names matching the user\\'s partial input\n * @param {string} input partial string entered by the user to engage autocomplete\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getNamespaceAutocompleteParamCreator = async (data: OrganizationApi_getNamespaceAutocomplete$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'input' is not null or undefined\nif (data['input'] === null || data['input'] === undefined) {\n throw new RequiredError('input','Required parameter input was null or undefined when calling getNamespaceAutocomplete.');\n}\nconst localVarPath = `/organizations/namespace/autocomplete`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['input'] !== undefined) {\n localVarQueryParameter['input'] = data['input'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getOnboardingItems$Params {\n namespace: string,\n organization?: string,\n}\n\nexport const OrganizationApi_getOnboardingItems$Path = '/onboarding/{namespace}';\n\n/**\n * Get onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getOnboardingItemsParamCreator = async (data: OrganizationApi_getOnboardingItems$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getOnboardingItems.');\n}\nconst localVarPath = `/onboarding/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['organization'] !== undefined) {\n localVarQueryParameter['organization'] = data['organization'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getOnboardingState$Params {\n namespace: string,\n namespaceType: string,\n}\n\nexport const OrganizationApi_getOnboardingState$Path = '/onboarding/{namespace}/state';\n\n/**\n * Get database state for specific onboarding steps that are not described or saved as onboarding items i.e. The existence of registered assets or the existence of members in an organization etc \n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} namespaceType the namespace type to check (each type makes different requests to REST and returns a different response)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getOnboardingStateParamCreator = async (data: OrganizationApi_getOnboardingState$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getOnboardingState.');\n}\n// verify required parameter 'namespaceType' is not null or undefined\nif (data['namespaceType'] === null || data['namespaceType'] === undefined) {\n throw new RequiredError('namespaceType','Required parameter namespaceType was null or undefined when calling getOnboardingState.');\n}\nconst localVarPath = `/onboarding/{namespace}/state`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespaceType'] !== undefined) {\n localVarQueryParameter['namespace_type'] = data['namespaceType'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getOrganization$Params {\n organization: string,\n}\n\nexport const OrganizationApi_getOrganization$Path = '/organizations/{organization}';\n\n/**\n * Fetch an organization\n * @param {string} organization organization name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getOrganizationParamCreator = async (data: OrganizationApi_getOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling getOrganization.');\n}\nconst localVarPath = `/organizations/{organization}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getOrganizationUser$Params {\n organization: string,\n username: string,\n}\n\nexport const OrganizationApi_getOrganizationUser$Path = '/organizations/{organization}/users/{username}';\n\n/**\n * get a user from an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getOrganizationUserParamCreator = async (data: OrganizationApi_getOrganizationUser$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling getOrganizationUser.');\n}\n// verify required parameter 'username' is not null or undefined\nif (data['username'] === null || data['username'] === undefined) {\n throw new RequiredError('username','Required parameter username was null or undefined when calling getOrganizationUser.');\n}\nconst localVarPath = `/organizations/{organization}/users/{username}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"username\"}}`, encodeURIComponent(String(data['username'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getOrganizationsAutocomplete$Params {\n input: string,\n}\n\nexport const OrganizationApi_getOrganizationsAutocomplete$Path = '/organizations/autocomplete';\n\n/**\n * Fetch list of organization names matching the user\\'s partial input\n * @param {string} input partial string entered by the user to engage autocomplete\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getOrganizationsAutocompleteParamCreator = async (data: OrganizationApi_getOrganizationsAutocomplete$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'input' is not null or undefined\nif (data['input'] === null || data['input'] === undefined) {\n throw new RequiredError('input','Required parameter input was null or undefined when calling getOrganizationsAutocomplete.');\n}\nconst localVarPath = `/organizations/autocomplete`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['input'] !== undefined) {\n localVarQueryParameter['input'] = data['input'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getPaymentDetails$Params {\n namespace: string,\n}\n\nexport const OrganizationApi_getPaymentDetails$Path = '/payments/{namespace}';\n\n/**\n * Get payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getPaymentDetailsParamCreator = async (data: OrganizationApi_getPaymentDetails$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getPaymentDetails.');\n}\nconst localVarPath = `/payments/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getSSODomain$Params {\n organization: string,\n uuid: string,\n}\n\nexport const OrganizationApi_getSSODomain$Path = '/organizations/{organization}/sso_domains/{uuid}';\n\n/**\n * Gets details about the given SSO domain connection.\n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getSSODomainParamCreator = async (data: OrganizationApi_getSSODomain$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling getSSODomain.');\n}\n// verify required parameter 'uuid' is not null or undefined\nif (data['uuid'] === null || data['uuid'] === undefined) {\n throw new RequiredError('uuid','Required parameter uuid was null or undefined when calling getSSODomain.');\n}\nconst localVarPath = `/organizations/{organization}/sso_domains/{uuid}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"uuid\"}}`, encodeURIComponent(String(data['uuid'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_getSSODomains$Params {\n organization: string,\n}\n\nexport const OrganizationApi_getSSODomains$Path = '/organizations/{organization}/sso_domains';\n\n/**\n * Lists all the SSO connections associated with the given organization. \n * @param {string} organization organization name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_getSSODomainsParamCreator = async (data: OrganizationApi_getSSODomains$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling getSSODomains.');\n}\nconst localVarPath = `/organizations/{organization}/sso_domains`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_listCredentials$Params {\n namespace: string,\n page?: number,\n perPage?: number,\n provider?: string,\n}\n\nexport const OrganizationApi_listCredentials$Path = '/credentials/{namespace}';\n\n/**\n * List the credentials available in the namespace\n * @param {string} namespace namespace\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [provider] Show only the credentials from this provider\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_listCredentialsParamCreator = async (data: OrganizationApi_listCredentials$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling listCredentials.');\n}\nconst localVarPath = `/credentials/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['provider'] !== undefined) {\n localVarQueryParameter['provider'] = data['provider'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_removePaymentDetails$Params {\n namespace: string,\n stripeDetails: StripeDetails,\n}\n\nexport const OrganizationApi_removePaymentDetails$Path = '/payments/{namespace}';\n\n/**\n * Remove payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_removePaymentDetailsParamCreator = async (data: OrganizationApi_removePaymentDetails$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling removePaymentDetails.');\n}\n// verify required parameter 'stripeDetails' is not null or undefined\nif (data['stripeDetails'] === null || data['stripeDetails'] === undefined) {\n throw new RequiredError('stripeDetails','Required parameter stripeDetails was null or undefined when calling removePaymentDetails.');\n}\nconst localVarPath = `/payments/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['stripeDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['stripeDetails'] !== undefined ? data['stripeDetails'] : {}) : (data['stripeDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_setOnboardingItems$Params {\n namespace: string,\n items: OnboardingItems,\n organization?: string,\n}\n\nexport const OrganizationApi_setOnboardingItems$Path = '/onboarding/{namespace}';\n\n/**\n * Set completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {OnboardingItems} items UI informs Rest server for Onboarding item\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_setOnboardingItemsParamCreator = async (data: OrganizationApi_setOnboardingItems$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling setOnboardingItems.');\n}\n// verify required parameter 'items' is not null or undefined\nif (data['items'] === null || data['items'] === undefined) {\n throw new RequiredError('items','Required parameter items was null or undefined when calling setOnboardingItems.');\n}\nconst localVarPath = `/onboarding/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['organization'] !== undefined) {\n localVarQueryParameter['organization'] = data['organization'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['items'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['items'] !== undefined ? data['items'] : {}) : (data['items'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_setPaymentDetails$Params {\n namespace: string,\n stripeDetails: StripeDetails,\n radarSession?: string,\n}\n\nexport const OrganizationApi_setPaymentDetails$Path = '/payments/{namespace}';\n\n/**\n * Set payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {string} [radarSession] Provides fraud protection\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_setPaymentDetailsParamCreator = async (data: OrganizationApi_setPaymentDetails$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling setPaymentDetails.');\n}\n// verify required parameter 'stripeDetails' is not null or undefined\nif (data['stripeDetails'] === null || data['stripeDetails'] === undefined) {\n throw new RequiredError('stripeDetails','Required parameter stripeDetails was null or undefined when calling setPaymentDetails.');\n}\nconst localVarPath = `/payments/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['radarSession'] !== undefined) {\n localVarQueryParameter['radar_session'] = data['radarSession'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['stripeDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['stripeDetails'] !== undefined ? data['stripeDetails'] : {}) : (data['stripeDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_subscribeToArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const OrganizationApi_subscribeToArray$Path = '/payments/pricing/{namespace}/{array}/subscribe';\n\n/**\n * Subscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_subscribeToArrayParamCreator = async (data: OrganizationApi_subscribeToArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling subscribeToArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling subscribeToArray.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}/subscribe`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_unsubscribeFromArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const OrganizationApi_unsubscribeFromArray$Path = '/payments/pricing/{namespace}/{array}/subscribe';\n\n/**\n * Unsubscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_unsubscribeFromArrayParamCreator = async (data: OrganizationApi_unsubscribeFromArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling unsubscribeFromArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling unsubscribeFromArray.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}/subscribe`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_updateCredential$Params {\n namespace: string,\n name: string,\n accessCredential: AccessCredentialUpdate,\n}\n\nexport const OrganizationApi_updateCredential$Path = '/credentials/{namespace}/{name}';\n\n/**\n * Update the named access credential. This will also update the information used to access arrays set to use this credential.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {AccessCredentialUpdate} accessCredential Changes to make to this credential\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_updateCredentialParamCreator = async (data: OrganizationApi_updateCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updateCredential.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling updateCredential.');\n}\n// verify required parameter 'accessCredential' is not null or undefined\nif (data['accessCredential'] === null || data['accessCredential'] === undefined) {\n throw new RequiredError('accessCredential','Required parameter accessCredential was null or undefined when calling updateCredential.');\n}\nconst localVarPath = `/credentials/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['accessCredential'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['accessCredential'] !== undefined ? data['accessCredential'] : {}) : (data['accessCredential'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_updateOrganization$Params {\n organization: string,\n organizationDetails: OrganizationUpdateParams,\n}\n\nexport const OrganizationApi_updateOrganization$Path = '/organizations/{organization}';\n\n/**\n * Update organization details\n * @param {string} organization organization name\n * @param {OrganizationUpdateParams} organizationDetails organization details to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_updateOrganizationParamCreator = async (data: OrganizationApi_updateOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling updateOrganization.');\n}\n// verify required parameter 'organizationDetails' is not null or undefined\nif (data['organizationDetails'] === null || data['organizationDetails'] === undefined) {\n throw new RequiredError('organizationDetails','Required parameter organizationDetails was null or undefined when calling updateOrganization.');\n}\nconst localVarPath = `/organizations/{organization}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['organizationDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['organizationDetails'] !== undefined ? data['organizationDetails'] : {}) : (data['organizationDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_updatePricing$Params {\n namespace: string,\n array: string,\n pricingInfo: PricingInfo,\n}\n\nexport const OrganizationApi_updatePricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Update pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} pricingInfo Pricing metadata to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_updatePricingParamCreator = async (data: OrganizationApi_updatePricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updatePricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling updatePricing.');\n}\n// verify required parameter 'pricingInfo' is not null or undefined\nif (data['pricingInfo'] === null || data['pricingInfo'] === undefined) {\n throw new RequiredError('pricingInfo','Required parameter pricingInfo was null or undefined when calling updatePricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['pricingInfo'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['pricingInfo'] !== undefined ? data['pricingInfo'] : {}) : (data['pricingInfo'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_updateSSODomain$Params {\n organization: string,\n uuid: string,\n config: SSODomainConfig,\n}\n\nexport const OrganizationApi_updateSSODomain$Path = '/organizations/{organization}/sso_domains/{uuid}';\n\n/**\n * Updates the configuration for the given SSO connection.\n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {SSODomainConfig} config The SSO connection to create.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_updateSSODomainParamCreator = async (data: OrganizationApi_updateSSODomain$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling updateSSODomain.');\n}\n// verify required parameter 'uuid' is not null or undefined\nif (data['uuid'] === null || data['uuid'] === undefined) {\n throw new RequiredError('uuid','Required parameter uuid was null or undefined when calling updateSSODomain.');\n}\n// verify required parameter 'config' is not null or undefined\nif (data['config'] === null || data['config'] === undefined) {\n throw new RequiredError('config','Required parameter config was null or undefined when calling updateSSODomain.');\n}\nconst localVarPath = `/organizations/{organization}/sso_domains/{uuid}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"uuid\"}}`, encodeURIComponent(String(data['uuid'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['config'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['config'] !== undefined ? data['config'] : {}) : (data['config'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface OrganizationApi_updateUserInOrganization$Params {\n organization: string,\n username: string,\n user: UpdateOrganizationUserParams,\n}\n\nexport const OrganizationApi_updateUserInOrganization$Path = '/organizations/{organization}/users/{username}';\n\n/**\n * update a user in an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {UpdateOrganizationUserParams} user user details to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OrganizationApi_updateUserInOrganizationParamCreator = async (data: OrganizationApi_updateUserInOrganization$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'organization' is not null or undefined\nif (data['organization'] === null || data['organization'] === undefined) {\n throw new RequiredError('organization','Required parameter organization was null or undefined when calling updateUserInOrganization.');\n}\n// verify required parameter 'username' is not null or undefined\nif (data['username'] === null || data['username'] === undefined) {\n throw new RequiredError('username','Required parameter username was null or undefined when calling updateUserInOrganization.');\n}\n// verify required parameter 'user' is not null or undefined\nif (data['user'] === null || data['user'] === undefined) {\n throw new RequiredError('user','Required parameter user was null or undefined when calling updateUserInOrganization.');\n}\nconst localVarPath = `/organizations/{organization}/users/{username}`\n .replace(`{${\"organization\"}}`, encodeURIComponent(String(data['organization'])))\n .replace(`{${\"username\"}}`, encodeURIComponent(String(data['username'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['user'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['user'] !== undefined ? data['user'] : {}) : (data['user'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type OrganizationApi_addCredential$Response = void;\n\n/**\n * Create a new credential for the namespace\n * @param {string} namespace namespace\n * @param {AccessCredentialUpdate} accessCredential The new credentials to be created.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_addCredential(data: OrganizationApi_addCredential$Params, options?: any): Promise<AxiosResponse<OrganizationApi_addCredential$Response>> {\n const localVarAxiosArgs = await OrganizationApi_addCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_addUserToOrganization$Response = void;\n\n/**\n * add a user to an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {CreateOrganizationUserParams} user user details to add\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_addUserToOrganization(data: OrganizationApi_addUserToOrganization$Params, options?: any): Promise<AxiosResponse<OrganizationApi_addUserToOrganization$Response>> {\n const localVarAxiosArgs = await OrganizationApi_addUserToOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_checkSSODomain$Response = DomainCheckResult;\n\n/**\n * Immediately verify ownership of the specified SSO domain ownership claim. \n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_checkSSODomain(data: OrganizationApi_checkSSODomain$Params, options?: any): Promise<AxiosResponse<OrganizationApi_checkSSODomain$Response>> {\n const localVarAxiosArgs = await OrganizationApi_checkSSODomainParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_createOrganization$Response = Organization;\n\n/**\n * Create an organization\n * @param {string} organization organization name\n * @param {OrganizationCreateParams} organizationDetails organization to create\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_createOrganization(data: OrganizationApi_createOrganization$Params, options?: any): Promise<AxiosResponse<OrganizationApi_createOrganization$Response>> {\n const localVarAxiosArgs = await OrganizationApi_createOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_createPricing$Response = void;\n\n/**\n * Create pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} [pricingInfo] Array pricing details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_createPricing(data: OrganizationApi_createPricing$Params, options?: any): Promise<AxiosResponse<OrganizationApi_createPricing$Response>> {\n const localVarAxiosArgs = await OrganizationApi_createPricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_createSSODomain$Response = SSODomainConfig;\n\n/**\n * Create a new SSO connection that connects this organization to this domain. \n * @param {string} organization organization name\n * @param {SSODomainConfig} config The SSO connection to create.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_createSSODomain(data: OrganizationApi_createSSODomain$Params, options?: any): Promise<AxiosResponse<OrganizationApi_createSSODomain$Response>> {\n const localVarAxiosArgs = await OrganizationApi_createSSODomainParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_deleteCredential$Response = void;\n\n/**\n * Delete the named access credential. Any arrays still set to use this credential will use the namespace\\'s default and may become unreachable.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_deleteCredential(data: OrganizationApi_deleteCredential$Params, options?: any): Promise<AxiosResponse<OrganizationApi_deleteCredential$Response>> {\n const localVarAxiosArgs = await OrganizationApi_deleteCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_deleteOnboardingItems$Response = void;\n\n/**\n * Deletes completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_deleteOnboardingItems(data: OrganizationApi_deleteOnboardingItems$Params, options?: any): Promise<AxiosResponse<OrganizationApi_deleteOnboardingItems$Response>> {\n const localVarAxiosArgs = await OrganizationApi_deleteOnboardingItemsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_deleteOrganization$Response = void;\n\n/**\n * Delete organization\n * @param {string} organization organization name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_deleteOrganization(data: OrganizationApi_deleteOrganization$Params, options?: any): Promise<AxiosResponse<OrganizationApi_deleteOrganization$Response>> {\n const localVarAxiosArgs = await OrganizationApi_deleteOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_deletePricing$Response = void;\n\n/**\n * Delete pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_deletePricing(data: OrganizationApi_deletePricing$Params, options?: any): Promise<AxiosResponse<OrganizationApi_deletePricing$Response>> {\n const localVarAxiosArgs = await OrganizationApi_deletePricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_deleteSSODomain$Response = void;\n\n/**\n * Deletes the configuration for the given SSO connection.\n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_deleteSSODomain(data: OrganizationApi_deleteSSODomain$Params, options?: any): Promise<AxiosResponse<OrganizationApi_deleteSSODomain$Response>> {\n const localVarAxiosArgs = await OrganizationApi_deleteSSODomainParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_deleteUserFromOrganization$Response = void;\n\n/**\n * delete a user from an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_deleteUserFromOrganization(data: OrganizationApi_deleteUserFromOrganization$Params, options?: any): Promise<AxiosResponse<OrganizationApi_deleteUserFromOrganization$Response>> {\n const localVarAxiosArgs = await OrganizationApi_deleteUserFromOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_fetchAllOrganizations$Response = Array<Organization>;\n\n/**\n * Fetches all organizations that the user is member of\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_fetchAllOrganizations(data: OrganizationApi_fetchAllOrganizations$Params, options?: any): Promise<AxiosResponse<OrganizationApi_fetchAllOrganizations$Response>> {\n const localVarAxiosArgs = await OrganizationApi_fetchAllOrganizationsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getBillingOverview$Response = BillingOverview;\n\n/**\n * Get billing overview\n * @param {string} [namespace] namespace to filter, defaults to requesting user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getBillingOverview(data: OrganizationApi_getBillingOverview$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getBillingOverview$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getBillingOverviewParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getChargeOperationsAllowed$Response = void;\n\n/**\n * Get whether operations which incur charges are allowed\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getChargeOperationsAllowed(data: OrganizationApi_getChargeOperationsAllowed$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getChargeOperationsAllowed$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getChargeOperationsAllowedParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getCredential$Response = AccessCredential;\n\n/**\n * Retrieve an access credential by name\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getCredential(data: OrganizationApi_getCredential$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getCredential$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getNamespaceAutocomplete$Response = Array<string>;\n\n/**\n * Fetch list of usernames and organization names matching the user\\'s partial input\n * @param {string} input partial string entered by the user to engage autocomplete\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getNamespaceAutocomplete(data: OrganizationApi_getNamespaceAutocomplete$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getNamespaceAutocomplete$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getNamespaceAutocompleteParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getOnboardingItems$Response = OnboardingItems;\n\n/**\n * Get onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getOnboardingItems(data: OrganizationApi_getOnboardingItems$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getOnboardingItems$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getOnboardingItemsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getOnboardingState$Response = OnboardingState;\n\n/**\n * Get database state for specific onboarding steps that are not described or saved as onboarding items i.e. The existence of registered assets or the existence of members in an organization etc \n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} namespaceType the namespace type to check (each type makes different requests to REST and returns a different response)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getOnboardingState(data: OrganizationApi_getOnboardingState$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getOnboardingState$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getOnboardingStateParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getOrganization$Response = Organization;\n\n/**\n * Fetch an organization\n * @param {string} organization organization name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getOrganization(data: OrganizationApi_getOrganization$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getOrganization$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getOrganizationUser$Response = OrganizationUser;\n\n/**\n * get a user from an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getOrganizationUser(data: OrganizationApi_getOrganizationUser$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getOrganizationUser$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getOrganizationUserParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getOrganizationsAutocomplete$Response = Array<string>;\n\n/**\n * Fetch list of organization names matching the user\\'s partial input\n * @param {string} input partial string entered by the user to engage autocomplete\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getOrganizationsAutocomplete(data: OrganizationApi_getOrganizationsAutocomplete$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getOrganizationsAutocomplete$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getOrganizationsAutocompleteParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getPaymentDetails$Response = PaymentMethod;\n\n/**\n * Get payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getPaymentDetails(data: OrganizationApi_getPaymentDetails$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getPaymentDetails$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getPaymentDetailsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getSSODomain$Response = SSODomainConfig;\n\n/**\n * Gets details about the given SSO domain connection.\n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getSSODomain(data: OrganizationApi_getSSODomain$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getSSODomain$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getSSODomainParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_getSSODomains$Response = SSODomainConfigResponse;\n\n/**\n * Lists all the SSO connections associated with the given organization. \n * @param {string} organization organization name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_getSSODomains(data: OrganizationApi_getSSODomains$Params, options?: any): Promise<AxiosResponse<OrganizationApi_getSSODomains$Response>> {\n const localVarAxiosArgs = await OrganizationApi_getSSODomainsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_listCredentials$Response = AccessCredentialsData;\n\n/**\n * List the credentials available in the namespace\n * @param {string} namespace namespace\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [provider] Show only the credentials from this provider\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_listCredentials(data: OrganizationApi_listCredentials$Params, options?: any): Promise<AxiosResponse<OrganizationApi_listCredentials$Response>> {\n const localVarAxiosArgs = await OrganizationApi_listCredentialsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_removePaymentDetails$Response = void;\n\n/**\n * Remove payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_removePaymentDetails(data: OrganizationApi_removePaymentDetails$Params, options?: any): Promise<AxiosResponse<OrganizationApi_removePaymentDetails$Response>> {\n const localVarAxiosArgs = await OrganizationApi_removePaymentDetailsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_setOnboardingItems$Response = void;\n\n/**\n * Set completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {OnboardingItems} items UI informs Rest server for Onboarding item\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_setOnboardingItems(data: OrganizationApi_setOnboardingItems$Params, options?: any): Promise<AxiosResponse<OrganizationApi_setOnboardingItems$Response>> {\n const localVarAxiosArgs = await OrganizationApi_setOnboardingItemsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_setPaymentDetails$Response = void;\n\n/**\n * Set payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {string} [radarSession] Provides fraud protection\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_setPaymentDetails(data: OrganizationApi_setPaymentDetails$Params, options?: any): Promise<AxiosResponse<OrganizationApi_setPaymentDetails$Response>> {\n const localVarAxiosArgs = await OrganizationApi_setPaymentDetailsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_subscribeToArray$Response = void;\n\n/**\n * Subscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_subscribeToArray(data: OrganizationApi_subscribeToArray$Params, options?: any): Promise<AxiosResponse<OrganizationApi_subscribeToArray$Response>> {\n const localVarAxiosArgs = await OrganizationApi_subscribeToArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_unsubscribeFromArray$Response = void;\n\n/**\n * Unsubscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_unsubscribeFromArray(data: OrganizationApi_unsubscribeFromArray$Params, options?: any): Promise<AxiosResponse<OrganizationApi_unsubscribeFromArray$Response>> {\n const localVarAxiosArgs = await OrganizationApi_unsubscribeFromArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_updateCredential$Response = void;\n\n/**\n * Update the named access credential. This will also update the information used to access arrays set to use this credential.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {AccessCredentialUpdate} accessCredential Changes to make to this credential\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_updateCredential(data: OrganizationApi_updateCredential$Params, options?: any): Promise<AxiosResponse<OrganizationApi_updateCredential$Response>> {\n const localVarAxiosArgs = await OrganizationApi_updateCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_updateOrganization$Response = void;\n\n/**\n * Update organization details\n * @param {string} organization organization name\n * @param {OrganizationUpdateParams} organizationDetails organization details to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_updateOrganization(data: OrganizationApi_updateOrganization$Params, options?: any): Promise<AxiosResponse<OrganizationApi_updateOrganization$Response>> {\n const localVarAxiosArgs = await OrganizationApi_updateOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_updatePricing$Response = void;\n\n/**\n * Update pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} pricingInfo Pricing metadata to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_updatePricing(data: OrganizationApi_updatePricing$Params, options?: any): Promise<AxiosResponse<OrganizationApi_updatePricing$Response>> {\n const localVarAxiosArgs = await OrganizationApi_updatePricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_updateSSODomain$Response = SSODomainConfig;\n\n/**\n * Updates the configuration for the given SSO connection.\n * @param {string} organization organization name\n * @param {string} uuid configuration ID\n * @param {SSODomainConfig} config The SSO connection to create.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_updateSSODomain(data: OrganizationApi_updateSSODomain$Params, options?: any): Promise<AxiosResponse<OrganizationApi_updateSSODomain$Response>> {\n const localVarAxiosArgs = await OrganizationApi_updateSSODomainParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type OrganizationApi_updateUserInOrganization$Response = void;\n\n/**\n * update a user in an organization\n * @param {string} organization organization name\n * @param {string} username username to manipulate\n * @param {UpdateOrganizationUserParams} user user details to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OrganizationApi_updateUserInOrganization(data: OrganizationApi_updateUserInOrganization$Params, options?: any): Promise<AxiosResponse<OrganizationApi_updateUserInOrganization$Response>> {\n const localVarAxiosArgs = await OrganizationApi_updateUserInOrganizationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface OverviewApi_getOverview$Params {\n namespace?: string,\n createdBy?: string,\n start?: number,\n end?: number,\n}\n\nexport const OverviewApi_getOverview$Path = '/overview';\n\n/**\n * \n * @param {string} [namespace] namespace to filter, defaults to requesting user\n * @param {string} [createdBy] username to filter (for tasks), defaults to requesting user\n * @param {number} [start] start time for tasks to filter by\n * @param {number} [end] end time for tasks to filter by\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst OverviewApi_getOverviewParamCreator = async (data: OverviewApi_getOverview$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/overview`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['createdBy'] !== undefined) {\n localVarQueryParameter['created_by'] = data['createdBy'];\n}\nif (data['start'] !== undefined) {\n localVarQueryParameter['start'] = data['start'];\n}\nif (data['end'] !== undefined) {\n localVarQueryParameter['end'] = data['end'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type OverviewApi_getOverview$Response = OverviewData;\n\n/**\n * \n * @param {string} [namespace] namespace to filter, defaults to requesting user\n * @param {string} [createdBy] username to filter (for tasks), defaults to requesting user\n * @param {number} [start] start time for tasks to filter by\n * @param {number} [end] end time for tasks to filter by\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function OverviewApi_getOverview(data: OverviewApi_getOverview$Params, options?: any): Promise<AxiosResponse<OverviewApi_getOverview$Response>> {\n const localVarAxiosArgs = await OverviewApi_getOverviewParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface QueryApi_getNotebookFile$Params {\n namespace: string,\n array: string,\n}\n\nexport const QueryApi_getNotebookFile$Path = '/notebooks/{namespace}/{array}';\n\n/**\n * send a query retrieve the notebooks content\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst QueryApi_getNotebookFileParamCreator = async (data: QueryApi_getNotebookFile$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getNotebookFile.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getNotebookFile.');\n}\nconst localVarPath = `/notebooks/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface QueryApi_getUDFFile$Params {\n namespace: string,\n array: string,\n}\n\nexport const QueryApi_getUDFFile$Path = '/udfs/{namespace}/{array}';\n\n/**\n * send a query retrieve the registered udfs content\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst QueryApi_getUDFFileParamCreator = async (data: QueryApi_getUDFFile$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getUDFFile.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling getUDFFile.');\n}\nconst localVarPath = `/udfs/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type QueryApi_getNotebookFile$Response = any;\n\n/**\n * send a query retrieve the notebooks content\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function QueryApi_getNotebookFile(data: QueryApi_getNotebookFile$Params, options?: any): Promise<AxiosResponse<QueryApi_getNotebookFile$Response>> {\n const localVarAxiosArgs = await QueryApi_getNotebookFileParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type QueryApi_getUDFFile$Response = any;\n\n/**\n * send a query retrieve the registered udfs content\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function QueryApi_getUDFFile(data: QueryApi_getUDFFile$Params, options?: any): Promise<AxiosResponse<QueryApi_getUDFFile$Response>> {\n const localVarAxiosArgs = await QueryApi_getUDFFileParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface RegisteredTaskGraphsApi_deleteRegisteredTaskGraph$Params {\n namespace: string,\n name: string,\n}\n\nexport const RegisteredTaskGraphsApi_deleteRegisteredTaskGraph$Path = '/taskgraphs/{namespace}/registered/{name}';\n\n/**\n * Delete the given registered task graph. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_deleteRegisteredTaskGraphParamCreator = async (data: RegisteredTaskGraphsApi_deleteRegisteredTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deleteRegisteredTaskGraph.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling deleteRegisteredTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/registered/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface RegisteredTaskGraphsApi_getRegisteredTaskGraph$Params {\n namespace: string,\n name: string,\n}\n\nexport const RegisteredTaskGraphsApi_getRegisteredTaskGraph$Path = '/taskgraphs/{namespace}/registered/{name}';\n\n/**\n * Fetch the contents of this registered task graph. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_getRegisteredTaskGraphParamCreator = async (data: RegisteredTaskGraphsApi_getRegisteredTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getRegisteredTaskGraph.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling getRegisteredTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/registered/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPolicies$Params {\n namespace: string,\n name: string,\n}\n\nexport const RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPolicies$Path = '/taskgraphs/{namespace}/registered/{name}/share';\n\n/**\n * Get sharing policies for the task graph.\n * @param {string} namespace The namespace that owns the registered task graph.\n * @param {string} name The name of the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPoliciesParamCreator = async (data: RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPolicies$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getRegisteredTaskGraphSharingPolicies.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling getRegisteredTaskGraphSharingPolicies.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/registered/{name}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface RegisteredTaskGraphsApi_registerRegisteredTaskGraph$Params {\n namespace: string,\n name: string,\n graph?: RegisteredTaskGraph,\n}\n\nexport const RegisteredTaskGraphsApi_registerRegisteredTaskGraph$Path = '/taskgraphs/{namespace}/registered/{name}';\n\n/**\n * Register a task graph in the given namespace, with the given name. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {RegisteredTaskGraph} [graph] Task graph to register.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_registerRegisteredTaskGraphParamCreator = async (data: RegisteredTaskGraphsApi_registerRegisteredTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling registerRegisteredTaskGraph.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling registerRegisteredTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/registered/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['graph'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['graph'] !== undefined ? data['graph'] : {}) : (data['graph'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface RegisteredTaskGraphsApi_resubmitTaskGraphExecution$Params {\n namespace: string,\n id: string,\n}\n\nexport const RegisteredTaskGraphsApi_resubmitTaskGraphExecution$Path = '/taskgraphs/{namespace}/executions/{id}/resubmit';\n\n/**\n * Retry a task graph in the given namespace using the associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_resubmitTaskGraphExecutionParamCreator = async (data: RegisteredTaskGraphsApi_resubmitTaskGraphExecution$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling resubmitTaskGraphExecution.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling resubmitTaskGraphExecution.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/executions/{id}/resubmit`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface RegisteredTaskGraphsApi_shareRegisteredTaskGraph$Params {\n namespace: string,\n name: string,\n taskGraphSharing: TaskGraphSharing,\n}\n\nexport const RegisteredTaskGraphsApi_shareRegisteredTaskGraph$Path = '/taskgraphs/{namespace}/registered/{name}/share';\n\n/**\n * Share a task graph.\n * @param {string} namespace The namespace that owns the registered task graph.\n * @param {string} name The name of the task graph.\n * @param {TaskGraphSharing} taskGraphSharing Namespace and list of permissions to share with. An empty list of permissions will remove the namespace; if permissions already exist they will be deleted then new ones added. In the event of a failure, the new policies will be rolled back to prevent partial policies, and it\\'s likely the UDF will not be shared with the namespace at all. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_shareRegisteredTaskGraphParamCreator = async (data: RegisteredTaskGraphsApi_shareRegisteredTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling shareRegisteredTaskGraph.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling shareRegisteredTaskGraph.');\n}\n// verify required parameter 'taskGraphSharing' is not null or undefined\nif (data['taskGraphSharing'] === null || data['taskGraphSharing'] === undefined) {\n throw new RequiredError('taskGraphSharing','Required parameter taskGraphSharing was null or undefined when calling shareRegisteredTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/registered/{name}/share`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['taskGraphSharing'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['taskGraphSharing'] !== undefined ? data['taskGraphSharing'] : {}) : (data['taskGraphSharing'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface RegisteredTaskGraphsApi_stopTaskGraph$Params {\n namespace: string,\n id: string,\n}\n\nexport const RegisteredTaskGraphsApi_stopTaskGraph$Path = '/taskgraphs/{namespace}/executions/{id}/stop';\n\n/**\n * Stop a task graph execution in the given namespace using the associated associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_stopTaskGraphParamCreator = async (data: RegisteredTaskGraphsApi_stopTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling stopTaskGraph.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling stopTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/executions/{id}/stop`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface RegisteredTaskGraphsApi_updateRegisteredTaskGraph$Params {\n namespace: string,\n name: string,\n graph?: RegisteredTaskGraph,\n}\n\nexport const RegisteredTaskGraphsApi_updateRegisteredTaskGraph$Path = '/taskgraphs/{namespace}/registered/{name}';\n\n/**\n * Update the contents of an existing registered task graph. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {RegisteredTaskGraph} [graph] The new contents of the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst RegisteredTaskGraphsApi_updateRegisteredTaskGraphParamCreator = async (data: RegisteredTaskGraphsApi_updateRegisteredTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updateRegisteredTaskGraph.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling updateRegisteredTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/registered/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['graph'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['graph'] !== undefined ? data['graph'] : {}) : (data['graph'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type RegisteredTaskGraphsApi_deleteRegisteredTaskGraph$Response = void;\n\n/**\n * Delete the given registered task graph. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_deleteRegisteredTaskGraph(data: RegisteredTaskGraphsApi_deleteRegisteredTaskGraph$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_deleteRegisteredTaskGraph$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_deleteRegisteredTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type RegisteredTaskGraphsApi_getRegisteredTaskGraph$Response = RegisteredTaskGraph;\n\n/**\n * Fetch the contents of this registered task graph. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_getRegisteredTaskGraph(data: RegisteredTaskGraphsApi_getRegisteredTaskGraph$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_getRegisteredTaskGraph$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_getRegisteredTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPolicies$Response = Array<TaskGraphSharing>;\n\n/**\n * Get sharing policies for the task graph.\n * @param {string} namespace The namespace that owns the registered task graph.\n * @param {string} name The name of the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPolicies(data: RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPolicies$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPolicies$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_getRegisteredTaskGraphSharingPoliciesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type RegisteredTaskGraphsApi_registerRegisteredTaskGraph$Response = void;\n\n/**\n * Register a task graph in the given namespace, with the given name. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {RegisteredTaskGraph} [graph] Task graph to register.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_registerRegisteredTaskGraph(data: RegisteredTaskGraphsApi_registerRegisteredTaskGraph$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_registerRegisteredTaskGraph$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_registerRegisteredTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type RegisteredTaskGraphsApi_resubmitTaskGraphExecution$Response = TaskGraphLog;\n\n/**\n * Retry a task graph in the given namespace using the associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_resubmitTaskGraphExecution(data: RegisteredTaskGraphsApi_resubmitTaskGraphExecution$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_resubmitTaskGraphExecution$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_resubmitTaskGraphExecutionParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type RegisteredTaskGraphsApi_shareRegisteredTaskGraph$Response = void;\n\n/**\n * Share a task graph.\n * @param {string} namespace The namespace that owns the registered task graph.\n * @param {string} name The name of the task graph.\n * @param {TaskGraphSharing} taskGraphSharing Namespace and list of permissions to share with. An empty list of permissions will remove the namespace; if permissions already exist they will be deleted then new ones added. In the event of a failure, the new policies will be rolled back to prevent partial policies, and it\\'s likely the UDF will not be shared with the namespace at all. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_shareRegisteredTaskGraph(data: RegisteredTaskGraphsApi_shareRegisteredTaskGraph$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_shareRegisteredTaskGraph$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_shareRegisteredTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type RegisteredTaskGraphsApi_stopTaskGraph$Response = TaskGraphLog;\n\n/**\n * Stop a task graph execution in the given namespace using the associated associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_stopTaskGraph(data: RegisteredTaskGraphsApi_stopTaskGraph$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_stopTaskGraph$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_stopTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type RegisteredTaskGraphsApi_updateRegisteredTaskGraph$Response = void;\n\n/**\n * Update the contents of an existing registered task graph. \n * @param {string} namespace The namespace that owns this registered UDF.\n * @param {string} name The name of the registered task graph.\n * @param {RegisteredTaskGraph} [graph] The new contents of the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function RegisteredTaskGraphsApi_updateRegisteredTaskGraph(data: RegisteredTaskGraphsApi_updateRegisteredTaskGraph$Params, options?: any): Promise<AxiosResponse<RegisteredTaskGraphsApi_updateRegisteredTaskGraph$Response>> {\n const localVarAxiosArgs = await RegisteredTaskGraphsApi_updateRegisteredTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface TaskGraphLogsApi_createTaskGraphLog$Params {\n namespace: string,\n log: TaskGraphLog,\n}\n\nexport const TaskGraphLogsApi_createTaskGraphLog$Path = '/taskgraphs/{namespace}/log';\n\n/**\n * Create a task graph log.\n * @param {string} namespace The namespace that will own this task graph log.\n * @param {TaskGraphLog} log \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_createTaskGraphLogParamCreator = async (data: TaskGraphLogsApi_createTaskGraphLog$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling createTaskGraphLog.');\n}\n// verify required parameter 'log' is not null or undefined\nif (data['log'] === null || data['log'] === undefined) {\n throw new RequiredError('log','Required parameter log was null or undefined when calling createTaskGraphLog.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/log`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['log'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['log'] !== undefined ? data['log'] : {}) : (data['log'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_getTaskGraphLog$Params {\n namespace: string,\n id: string,\n}\n\nexport const TaskGraphLogsApi_getTaskGraphLog$Path = '/taskgraphs/{namespace}/logs/{id}';\n\n/**\n * Fetch information about a single task graph execution. \n * @param {string} namespace The namespace that owns this task graph log.\n * @param {string} id The UUID of the task graph log entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_getTaskGraphLogParamCreator = async (data: TaskGraphLogsApi_getTaskGraphLog$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getTaskGraphLog.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling getTaskGraphLog.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/logs/{id}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_getTaskgraphLogFilters$Params {\n namespace?: string,\n}\n\nexport const TaskGraphLogsApi_getTaskgraphLogFilters$Path = '/taskgraphs/logs/filters';\n\n/**\n * Object containing data related to taskgraph logs to be used in the tasgraph log listing route as filters \n * @param {string} [namespace] the namespace that the taskgraphs belong to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_getTaskgraphLogFiltersParamCreator = async (data: TaskGraphLogsApi_getTaskgraphLogFilters$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/taskgraphs/logs/filters`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_listTaskGraphLogs$Params {\n namespace?: string,\n createdBy?: string,\n status?: string,\n search?: string,\n startTime?: string,\n endTime?: string,\n page?: number,\n perPage?: number,\n}\n\nexport const TaskGraphLogsApi_listTaskGraphLogs$Path = '/taskgraphs/logs';\n\n/**\n * Fetch the task graph logs of a namespace the user has access to. The returned entries will include only summary data, and will not include information about the individual tasks that were executed. (This information is available when requesting an individual task graph log.) Entries in the response are ordered from newest to oldest. Pagination parameters work as in other API methods; see PaginationMetadata. \n * @param {string} [namespace] Include logs for this namespace.\n * @param {string} [createdBy] Include logs from only this user.\n * @param {string} [status] Filter to only return these statuses\n * @param {string} [search] search string that will look at name.\n * @param {string} [startTime] Include logs created after this time.\n * @param {string} [endTime] Include logs created before this time.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_listTaskGraphLogsParamCreator = async (data: TaskGraphLogsApi_listTaskGraphLogs$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/taskgraphs/logs`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\nif (data['createdBy'] !== undefined) {\n localVarQueryParameter['created_by'] = data['createdBy'];\n}\nif (data['status'] !== undefined) {\n localVarQueryParameter['status'] = data['status'];\n}\nif (data['search'] !== undefined) {\n localVarQueryParameter['search'] = data['search'];\n}\nif (data['startTime'] !== undefined) {\n localVarQueryParameter['start_time'] = (data['startTime'] as any instanceof Date) ?\n (data['startTime'] as any).toISOString() :\n data['startTime'];\n}\nif (data['endTime'] !== undefined) {\n localVarQueryParameter['end_time'] = (data['endTime'] as any instanceof Date) ?\n (data['endTime'] as any).toISOString() :\n data['endTime'];\n}\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_resubmitTaskGraphExecution$Params {\n namespace: string,\n id: string,\n}\n\nexport const TaskGraphLogsApi_resubmitTaskGraphExecution$Path = '/taskgraphs/{namespace}/executions/{id}/resubmit';\n\n/**\n * Retry a task graph in the given namespace using the associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_resubmitTaskGraphExecutionParamCreator = async (data: TaskGraphLogsApi_resubmitTaskGraphExecution$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling resubmitTaskGraphExecution.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling resubmitTaskGraphExecution.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/executions/{id}/resubmit`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_retryTaskGraphExecution$Params {\n namespace: string,\n id: string,\n}\n\nexport const TaskGraphLogsApi_retryTaskGraphExecution$Path = '/taskgraphs/{namespace}/executions/{id}/retry';\n\n/**\n * Retries a task graph failed tasks of in the given namespace using the associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph execution (TaskGraphLog).\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_retryTaskGraphExecutionParamCreator = async (data: TaskGraphLogsApi_retryTaskGraphExecution$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling retryTaskGraphExecution.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling retryTaskGraphExecution.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/executions/{id}/retry`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_stopTaskGraph$Params {\n namespace: string,\n id: string,\n}\n\nexport const TaskGraphLogsApi_stopTaskGraph$Path = '/taskgraphs/{namespace}/executions/{id}/stop';\n\n/**\n * Stop a task graph execution in the given namespace using the associated associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_stopTaskGraphParamCreator = async (data: TaskGraphLogsApi_stopTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling stopTaskGraph.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling stopTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/executions/{id}/stop`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_submitTaskGraph$Params {\n namespace: string,\n id: string,\n}\n\nexport const TaskGraphLogsApi_submitTaskGraph$Path = '/taskgraphs/{namespace}/graphs/{id}/submit';\n\n/**\n * Submit a single task graph for execution. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_submitTaskGraphParamCreator = async (data: TaskGraphLogsApi_submitTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling submitTaskGraph.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling submitTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/graphs/{id}/submit`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphLogsApi_updateTaskGraphLog$Params {\n namespace: string,\n id: string,\n log: TaskGraphLog,\n}\n\nexport const TaskGraphLogsApi_updateTaskGraphLog$Path = '/taskgraphs/{namespace}/logs/{id}';\n\n/**\n * Update information about a single task graph execution. \n * @param {string} namespace The namespace that owns this task graph log.\n * @param {string} id The UUID of the task graph log entry.\n * @param {TaskGraphLog} log Updates to make to the task graph log. The only manual update that a client should need to make to a task graph log is to update its completion status to `succeeded`, `failed`, or `cancelled`. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphLogsApi_updateTaskGraphLogParamCreator = async (data: TaskGraphLogsApi_updateTaskGraphLog$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updateTaskGraphLog.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling updateTaskGraphLog.');\n}\n// verify required parameter 'log' is not null or undefined\nif (data['log'] === null || data['log'] === undefined) {\n throw new RequiredError('log','Required parameter log was null or undefined when calling updateTaskGraphLog.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/logs/{id}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['log'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['log'] !== undefined ? data['log'] : {}) : (data['log'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type TaskGraphLogsApi_createTaskGraphLog$Response = TaskGraphLog;\n\n/**\n * Create a task graph log.\n * @param {string} namespace The namespace that will own this task graph log.\n * @param {TaskGraphLog} log \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_createTaskGraphLog(data: TaskGraphLogsApi_createTaskGraphLog$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_createTaskGraphLog$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_createTaskGraphLogParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_getTaskGraphLog$Response = TaskGraphLog;\n\n/**\n * Fetch information about a single task graph execution. \n * @param {string} namespace The namespace that owns this task graph log.\n * @param {string} id The UUID of the task graph log entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_getTaskGraphLog(data: TaskGraphLogsApi_getTaskGraphLog$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_getTaskGraphLog$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_getTaskGraphLogParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_getTaskgraphLogFilters$Response = TaskgraphLogsFiltersResponse;\n\n/**\n * Object containing data related to taskgraph logs to be used in the tasgraph log listing route as filters \n * @param {string} [namespace] the namespace that the taskgraphs belong to\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_getTaskgraphLogFilters(data: TaskGraphLogsApi_getTaskgraphLogFilters$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_getTaskgraphLogFilters$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_getTaskgraphLogFiltersParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_listTaskGraphLogs$Response = TaskGraphLogsData;\n\n/**\n * Fetch the task graph logs of a namespace the user has access to. The returned entries will include only summary data, and will not include information about the individual tasks that were executed. (This information is available when requesting an individual task graph log.) Entries in the response are ordered from newest to oldest. Pagination parameters work as in other API methods; see PaginationMetadata. \n * @param {string} [namespace] Include logs for this namespace.\n * @param {string} [createdBy] Include logs from only this user.\n * @param {string} [status] Filter to only return these statuses\n * @param {string} [search] search string that will look at name.\n * @param {string} [startTime] Include logs created after this time.\n * @param {string} [endTime] Include logs created before this time.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_listTaskGraphLogs(data: TaskGraphLogsApi_listTaskGraphLogs$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_listTaskGraphLogs$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_listTaskGraphLogsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_resubmitTaskGraphExecution$Response = TaskGraphLog;\n\n/**\n * Retry a task graph in the given namespace using the associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_resubmitTaskGraphExecution(data: TaskGraphLogsApi_resubmitTaskGraphExecution$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_resubmitTaskGraphExecution$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_resubmitTaskGraphExecutionParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_retryTaskGraphExecution$Response = TaskGraphLog;\n\n/**\n * Retries a task graph failed tasks of in the given namespace using the associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph execution (TaskGraphLog).\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_retryTaskGraphExecution(data: TaskGraphLogsApi_retryTaskGraphExecution$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_retryTaskGraphExecution$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_retryTaskGraphExecutionParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_stopTaskGraph$Response = TaskGraphLog;\n\n/**\n * Stop a task graph execution in the given namespace using the associated associated execution id.\n * @param {string} namespace The namespace that owns this task graph execution.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_stopTaskGraph(data: TaskGraphLogsApi_stopTaskGraph$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_stopTaskGraph$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_stopTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_submitTaskGraph$Response = TaskGraphLog;\n\n/**\n * Submit a single task graph for execution. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_submitTaskGraph(data: TaskGraphLogsApi_submitTaskGraph$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_submitTaskGraph$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_submitTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphLogsApi_updateTaskGraphLog$Response = void;\n\n/**\n * Update information about a single task graph execution. \n * @param {string} namespace The namespace that owns this task graph log.\n * @param {string} id The UUID of the task graph log entry.\n * @param {TaskGraphLog} log Updates to make to the task graph log. The only manual update that a client should need to make to a task graph log is to update its completion status to `succeeded`, `failed`, or `cancelled`. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphLogsApi_updateTaskGraphLog(data: TaskGraphLogsApi_updateTaskGraphLog$Params, options?: any): Promise<AxiosResponse<TaskGraphLogsApi_updateTaskGraphLog$Response>> {\n const localVarAxiosArgs = await TaskGraphLogsApi_updateTaskGraphLogParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface TaskGraphsApi_createTaskGraph$Params {\n namespace: string,\n graph: TaskGraph,\n}\n\nexport const TaskGraphsApi_createTaskGraph$Path = '/taskgraphs/{namespace}/graphs';\n\n/**\n * Create a single task graph for execution. \n * @param {string} namespace Include graphs for this namespace.\n * @param {TaskGraph} graph Create the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphsApi_createTaskGraphParamCreator = async (data: TaskGraphsApi_createTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling createTaskGraph.');\n}\n// verify required parameter 'graph' is not null or undefined\nif (data['graph'] === null || data['graph'] === undefined) {\n throw new RequiredError('graph','Required parameter graph was null or undefined when calling createTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/graphs`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['graph'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['graph'] !== undefined ? data['graph'] : {}) : (data['graph'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphsApi_getTaskGraph$Params {\n namespace: string,\n id: string,\n}\n\nexport const TaskGraphsApi_getTaskGraph$Path = '/taskgraphs/{namespace}/graphs/{id}';\n\n/**\n * Fetch information about a single task graph. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphsApi_getTaskGraphParamCreator = async (data: TaskGraphsApi_getTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getTaskGraph.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling getTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/graphs/{id}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphsApi_listTaskGraphs$Params {\n namespace: string,\n}\n\nexport const TaskGraphsApi_listTaskGraphs$Path = '/taskgraphs/{namespace}/graphs';\n\n/**\n * Fetch the task graphs of a namespace the user has access to. The returned entries will include only summary data, and will not include information about the individual tasks that were executed. (This information is available when requesting an individual task graph log.) Entries in the response are ordered from newest to oldest. Pagination parameters work as in other API methods; see PaginationMetadata. \n * @param {string} namespace Namespace for graphs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphsApi_listTaskGraphsParamCreator = async (data: TaskGraphsApi_listTaskGraphs$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling listTaskGraphs.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/graphs`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphsApi_submitTaskGraph$Params {\n namespace: string,\n id: string,\n}\n\nexport const TaskGraphsApi_submitTaskGraph$Path = '/taskgraphs/{namespace}/graphs/{id}/submit';\n\n/**\n * Submit a single task graph for execution. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphsApi_submitTaskGraphParamCreator = async (data: TaskGraphsApi_submitTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling submitTaskGraph.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling submitTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/graphs/{id}/submit`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface TaskGraphsApi_updateTaskGraph$Params {\n namespace: string,\n id: string,\n graph: TaskGraph,\n}\n\nexport const TaskGraphsApi_updateTaskGraph$Path = '/taskgraphs/{namespace}/graphs/{id}';\n\n/**\n * Update information about a single task graph execution. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {TaskGraph} graph Updates to make to the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TaskGraphsApi_updateTaskGraphParamCreator = async (data: TaskGraphsApi_updateTaskGraph$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updateTaskGraph.');\n}\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling updateTaskGraph.');\n}\n// verify required parameter 'graph' is not null or undefined\nif (data['graph'] === null || data['graph'] === undefined) {\n throw new RequiredError('graph','Required parameter graph was null or undefined when calling updateTaskGraph.');\n}\nconst localVarPath = `/taskgraphs/{namespace}/graphs/{id}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['graph'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['graph'] !== undefined ? data['graph'] : {}) : (data['graph'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type TaskGraphsApi_createTaskGraph$Response = TaskGraph;\n\n/**\n * Create a single task graph for execution. \n * @param {string} namespace Include graphs for this namespace.\n * @param {TaskGraph} graph Create the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphsApi_createTaskGraph(data: TaskGraphsApi_createTaskGraph$Params, options?: any): Promise<AxiosResponse<TaskGraphsApi_createTaskGraph$Response>> {\n const localVarAxiosArgs = await TaskGraphsApi_createTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphsApi_getTaskGraph$Response = TaskGraph;\n\n/**\n * Fetch information about a single task graph. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphsApi_getTaskGraph(data: TaskGraphsApi_getTaskGraph$Params, options?: any): Promise<AxiosResponse<TaskGraphsApi_getTaskGraph$Response>> {\n const localVarAxiosArgs = await TaskGraphsApi_getTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphsApi_listTaskGraphs$Response = TaskGraphs;\n\n/**\n * Fetch the task graphs of a namespace the user has access to. The returned entries will include only summary data, and will not include information about the individual tasks that were executed. (This information is available when requesting an individual task graph log.) Entries in the response are ordered from newest to oldest. Pagination parameters work as in other API methods; see PaginationMetadata. \n * @param {string} namespace Namespace for graphs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphsApi_listTaskGraphs(data: TaskGraphsApi_listTaskGraphs$Params, options?: any): Promise<AxiosResponse<TaskGraphsApi_listTaskGraphs$Response>> {\n const localVarAxiosArgs = await TaskGraphsApi_listTaskGraphsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphsApi_submitTaskGraph$Response = TaskGraphLog;\n\n/**\n * Submit a single task graph for execution. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphsApi_submitTaskGraph(data: TaskGraphsApi_submitTaskGraph$Params, options?: any): Promise<AxiosResponse<TaskGraphsApi_submitTaskGraph$Response>> {\n const localVarAxiosArgs = await TaskGraphsApi_submitTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type TaskGraphsApi_updateTaskGraph$Response = void;\n\n/**\n * Update information about a single task graph execution. \n * @param {string} namespace The namespace that owns this task graph.\n * @param {string} id The UUID of the task graph entry.\n * @param {TaskGraph} graph Updates to make to the task graph.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TaskGraphsApi_updateTaskGraph(data: TaskGraphsApi_updateTaskGraph$Params, options?: any): Promise<AxiosResponse<TaskGraphsApi_updateTaskGraph$Response>> {\n const localVarAxiosArgs = await TaskGraphsApi_updateTaskGraphParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface TasksApi_taskIdResultGet$Params {\n id: string,\n acceptEncoding?: string,\n}\n\nexport const TasksApi_taskIdResultGet$Path = '/task/{id}/result';\n\n/**\n * Retrieve results of an array task\n * @param {string} id task ID to retrieve stored results\n * @param {string} [acceptEncoding] Encoding to use\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst TasksApi_taskIdResultGetParamCreator = async (data: TasksApi_taskIdResultGet$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'id' is not null or undefined\nif (data['id'] === null || data['id'] === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling taskIdResultGet.');\n}\nconst localVarPath = `/task/{id}/result`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(data['id'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['acceptEncoding'] !== undefined && data['acceptEncoding'] !== null) {\n localVarHeaderParameter['Accept-Encoding'] = String(data['acceptEncoding']);\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type TasksApi_taskIdResultGet$Response = string;\n\n/**\n * Retrieve results of an array task\n * @param {string} id task ID to retrieve stored results\n * @param {string} [acceptEncoding] Encoding to use\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function TasksApi_taskIdResultGet(data: TasksApi_taskIdResultGet$Params, options?: any): Promise<AxiosResponse<TasksApi_taskIdResultGet$Response>> {\n const localVarAxiosArgs = await TasksApi_taskIdResultGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface UdfApi_handleCopyUDF$Params {\n namespace: string,\n name: string,\n uDFCopy: UDFCopy,\n xTILEDBCLOUDACCESSCREDENTIALSNAME?: string,\n endTimestamp?: number,\n}\n\nexport const UdfApi_handleCopyUDF$Path = '/udfs/{namespace}/{name}/copy';\n\n/**\n * Copy a tiledb udf at the specified location\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} name name of UDFInfo\n * @param {UDFCopy} uDFCopy Input/Output information to copy a UDF\n * @param {string} [xTILEDBCLOUDACCESSCREDENTIALSNAME] Optional registered access credentials to use for creation\n * @param {number} [endTimestamp] Milliseconds since Unix epoch\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UdfApi_handleCopyUDFParamCreator = async (data: UdfApi_handleCopyUDF$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling handleCopyUDF.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling handleCopyUDF.');\n}\n// verify required parameter 'uDFCopy' is not null or undefined\nif (data['uDFCopy'] === null || data['uDFCopy'] === undefined) {\n throw new RequiredError('uDFCopy','Required parameter uDFCopy was null or undefined when calling handleCopyUDF.');\n}\nconst localVarPath = `/udfs/{namespace}/{name}/copy`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\nif (data['xTILEDBCLOUDACCESSCREDENTIALSNAME'] !== undefined && data['xTILEDBCLOUDACCESSCREDENTIALSNAME'] !== null) {\n localVarHeaderParameter['X-TILEDB-CLOUD-ACCESS-CREDENTIALS-NAME'] = String(data['xTILEDBCLOUDACCESSCREDENTIALSNAME']);\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['uDFCopy'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['uDFCopy'] !== undefined ? data['uDFCopy'] : {}) : (data['uDFCopy'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UdfApi_udfsNamespaceArrayEndTimestampsGet$Params {\n namespace: string,\n array: string,\n page?: number,\n perPage?: number,\n}\n\nexport const UdfApi_udfsNamespaceArrayEndTimestampsGet$Path = '/udfs/{namespace}/{array}/end_timestamps';\n\n/**\n * retrieve a list of timestamps from the array fragment info listing in milliseconds\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UdfApi_udfsNamespaceArrayEndTimestampsGetParamCreator = async (data: UdfApi_udfsNamespaceArrayEndTimestampsGet$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling udfsNamespaceArrayEndTimestampsGet.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling udfsNamespaceArrayEndTimestampsGet.');\n}\nconst localVarPath = `/udfs/{namespace}/{array}/end_timestamps`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UdfApi_udfsNamespaceArrayPreviewGet$Params {\n namespace: string,\n array: string,\n endTimestamp?: number,\n}\n\nexport const UdfApi_udfsNamespaceArrayPreviewGet$Path = '/udfs/{namespace}/{array}/preview';\n\n/**\n * retrieve the raw exec value and language\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open udf at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UdfApi_udfsNamespaceArrayPreviewGetParamCreator = async (data: UdfApi_udfsNamespaceArrayPreviewGet$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling udfsNamespaceArrayPreviewGet.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling udfsNamespaceArrayPreviewGet.');\n}\nconst localVarPath = `/udfs/{namespace}/{array}/preview`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['endTimestamp'] !== undefined) {\n localVarQueryParameter['end_timestamp'] = data['endTimestamp'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type UdfApi_handleCopyUDF$Response = UDFCopied;\n\n/**\n * Copy a tiledb udf at the specified location\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} name name of UDFInfo\n * @param {UDFCopy} uDFCopy Input/Output information to copy a UDF\n * @param {string} [xTILEDBCLOUDACCESSCREDENTIALSNAME] Optional registered access credentials to use for creation\n * @param {number} [endTimestamp] Milliseconds since Unix epoch\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UdfApi_handleCopyUDF(data: UdfApi_handleCopyUDF$Params, options?: any): Promise<AxiosResponse<UdfApi_handleCopyUDF$Response>> {\n const localVarAxiosArgs = await UdfApi_handleCopyUDFParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UdfApi_udfsNamespaceArrayEndTimestampsGet$Response = ArrayEndTimetsampsData;\n\n/**\n * retrieve a list of timestamps from the array fragment info listing in milliseconds\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UdfApi_udfsNamespaceArrayEndTimestampsGet(data: UdfApi_udfsNamespaceArrayEndTimestampsGet$Params, options?: any): Promise<AxiosResponse<UdfApi_udfsNamespaceArrayEndTimestampsGet$Response>> {\n const localVarAxiosArgs = await UdfApi_udfsNamespaceArrayEndTimestampsGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UdfApi_udfsNamespaceArrayPreviewGet$Response = Preview;\n\n/**\n * retrieve the raw exec value and language\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {number} [endTimestamp] UTC timestamp in milliseconds, will make the preview use open_at functionality to open udf at an older timestamp\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UdfApi_udfsNamespaceArrayPreviewGet(data: UdfApi_udfsNamespaceArrayPreviewGet$Params, options?: any): Promise<AxiosResponse<UdfApi_udfsNamespaceArrayPreviewGet$Response>> {\n const localVarAxiosArgs = await UdfApi_udfsNamespaceArrayPreviewGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n\n\nexport interface UserApi_addCredential$Params {\n namespace: string,\n accessCredential: AccessCredentialUpdate,\n page?: number,\n perPage?: number,\n}\n\nexport const UserApi_addCredential$Path = '/credentials/{namespace}';\n\n/**\n * Create a new credential for the namespace\n * @param {string} namespace namespace\n * @param {AccessCredentialUpdate} accessCredential The new credentials to be created.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_addCredentialParamCreator = async (data: UserApi_addCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling addCredential.');\n}\n// verify required parameter 'accessCredential' is not null or undefined\nif (data['accessCredential'] === null || data['accessCredential'] === undefined) {\n throw new RequiredError('accessCredential','Required parameter accessCredential was null or undefined when calling addCredential.');\n}\nconst localVarPath = `/credentials/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['accessCredential'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['accessCredential'] !== undefined ? data['accessCredential'] : {}) : (data['accessCredential'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_changePassword$Params {\n changePasswordParams?: UserChangePassword,\n}\n\nexport const UserApi_changePassword$Path = '/user/change_password';\n\n/**\n * Change user password\n * @param {UserChangePassword} [changePasswordParams] User\\'s new password\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_changePasswordParamCreator = async (data: UserApi_changePassword$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user/change_password`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['changePasswordParams'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['changePasswordParams'] !== undefined ? data['changePasswordParams'] : {}) : (data['changePasswordParams'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_checkLoginCookie$Params = void;\n\nexport const UserApi_checkLoginCookie$Path = '/user/check_login';\n\n/**\n * Get login cookie status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_checkLoginCookieParamCreator = async (data: UserApi_checkLoginCookie$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user/check_login`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_confirmEmail$Params {\n user: ConfirmEmail,\n}\n\nexport const UserApi_confirmEmail$Path = '/user/confirm_email';\n\n/**\n * confirm user email\n * @param {ConfirmEmail} user token to use for user requesting email confirmation\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_confirmEmailParamCreator = async (data: UserApi_confirmEmail$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'user' is not null or undefined\nif (data['user'] === null || data['user'] === undefined) {\n throw new RequiredError('user','Required parameter user was null or undefined when calling confirmEmail.');\n}\nconst localVarPath = `/user/confirm_email`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['user'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['user'] !== undefined ? data['user'] : {}) : (data['user'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_createPricing$Params {\n namespace: string,\n array: string,\n pricingInfo?: PricingInfo,\n}\n\nexport const UserApi_createPricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Create pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} [pricingInfo] Array pricing details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_createPricingParamCreator = async (data: UserApi_createPricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling createPricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling createPricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['pricingInfo'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['pricingInfo'] !== undefined ? data['pricingInfo'] : {}) : (data['pricingInfo'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_deleteCredential$Params {\n namespace: string,\n name: string,\n}\n\nexport const UserApi_deleteCredential$Path = '/credentials/{namespace}/{name}';\n\n/**\n * Delete the named access credential. Any arrays still set to use this credential will use the namespace\\'s default and may become unreachable.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_deleteCredentialParamCreator = async (data: UserApi_deleteCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deleteCredential.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling deleteCredential.');\n}\nconst localVarPath = `/credentials/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_deleteOnboardingItems$Params {\n namespace: string,\n organization?: string,\n}\n\nexport const UserApi_deleteOnboardingItems$Path = '/onboarding/{namespace}';\n\n/**\n * Deletes completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_deleteOnboardingItemsParamCreator = async (data: UserApi_deleteOnboardingItems$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deleteOnboardingItems.');\n}\nconst localVarPath = `/onboarding/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['organization'] !== undefined) {\n localVarQueryParameter['organization'] = data['organization'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_deletePricing$Params {\n namespace: string,\n array: string,\n}\n\nexport const UserApi_deletePricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Delete pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_deletePricingParamCreator = async (data: UserApi_deletePricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling deletePricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling deletePricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_deleteUser$Params = void;\n\nexport const UserApi_deleteUser$Path = '/user';\n\n/**\n * delete a user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_deleteUserParamCreator = async (data: UserApi_deleteUser$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getBillingOverview$Params {\n namespace?: string,\n}\n\nexport const UserApi_getBillingOverview$Path = '/payments/billing-overview';\n\n/**\n * Get billing overview\n * @param {string} [namespace] namespace to filter, defaults to requesting user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getBillingOverviewParamCreator = async (data: UserApi_getBillingOverview$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/payments/billing-overview`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespace'] !== undefined) {\n localVarQueryParameter['namespace'] = data['namespace'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getChargeOperationsAllowed$Params {\n namespace: string,\n}\n\nexport const UserApi_getChargeOperationsAllowed$Path = '/charges/allowed/{namespace}';\n\n/**\n * Get whether operations which incur charges are allowed\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getChargeOperationsAllowedParamCreator = async (data: UserApi_getChargeOperationsAllowed$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getChargeOperationsAllowed.');\n}\nconst localVarPath = `/charges/allowed/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getCredential$Params {\n namespace: string,\n name: string,\n}\n\nexport const UserApi_getCredential$Path = '/credentials/{namespace}/{name}';\n\n/**\n * Retrieve an access credential by name\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getCredentialParamCreator = async (data: UserApi_getCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getCredential.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling getCredential.');\n}\nconst localVarPath = `/credentials/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getOnboardingItems$Params {\n namespace: string,\n organization?: string,\n}\n\nexport const UserApi_getOnboardingItems$Path = '/onboarding/{namespace}';\n\n/**\n * Get onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getOnboardingItemsParamCreator = async (data: UserApi_getOnboardingItems$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getOnboardingItems.');\n}\nconst localVarPath = `/onboarding/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['organization'] !== undefined) {\n localVarQueryParameter['organization'] = data['organization'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getOnboardingState$Params {\n namespace: string,\n namespaceType: string,\n}\n\nexport const UserApi_getOnboardingState$Path = '/onboarding/{namespace}/state';\n\n/**\n * Get database state for specific onboarding steps that are not described or saved as onboarding items i.e. The existence of registered assets or the existence of members in an organization etc \n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} namespaceType the namespace type to check (each type makes different requests to REST and returns a different response)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getOnboardingStateParamCreator = async (data: UserApi_getOnboardingState$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getOnboardingState.');\n}\n// verify required parameter 'namespaceType' is not null or undefined\nif (data['namespaceType'] === null || data['namespaceType'] === undefined) {\n throw new RequiredError('namespaceType','Required parameter namespaceType was null or undefined when calling getOnboardingState.');\n}\nconst localVarPath = `/onboarding/{namespace}/state`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['namespaceType'] !== undefined) {\n localVarQueryParameter['namespace_type'] = data['namespaceType'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getPaymentDetails$Params {\n namespace: string,\n}\n\nexport const UserApi_getPaymentDetails$Path = '/payments/{namespace}';\n\n/**\n * Get payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getPaymentDetailsParamCreator = async (data: UserApi_getPaymentDetails$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling getPaymentDetails.');\n}\nconst localVarPath = `/payments/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getPerDomainEndpoint$Params {\n email?: string,\n}\n\nexport const UserApi_getPerDomainEndpoint$Path = '/user/perdomain_login_endpoint';\n\n/**\n * Given an email address, returns the OpenID Connect endpoint where the user should be sent for login. \n * @param {string} [email] The email address of the user who wants to use per-domain SSO. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getPerDomainEndpointParamCreator = async (data: UserApi_getPerDomainEndpoint$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user/perdomain_login_endpoint`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['email'] !== undefined) {\n localVarQueryParameter['email'] = data['email'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_getSession$Params = void;\n\nexport const UserApi_getSession$Path = '/session/scoped';\n\n/**\n * Get scoped session token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getSessionParamCreator = async (data: UserApi_getSession$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/session/scoped`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_getTokenScopes$Params = void;\n\nexport const UserApi_getTokenScopes$Path = '/tokens/scopes';\n\n/**\n * retrieves available token scopes for a user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getTokenScopesParamCreator = async (data: UserApi_getTokenScopes$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/tokens/scopes`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_getUser$Params = void;\n\nexport const UserApi_getUser$Path = '/user';\n\n/**\n * Fetch a user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getUserParamCreator = async (data: UserApi_getUser$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_getUserMetaStatus$Params = void;\n\nexport const UserApi_getUserMetaStatus$Path = '/user/meta';\n\n/**\n * Get status about user\\'s metadata\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getUserMetaStatusParamCreator = async (data: UserApi_getUserMetaStatus$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user/meta`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getUserPasswordEntropy$Params {\n password: string,\n}\n\nexport const UserApi_getUserPasswordEntropy$Path = '/user/password_entropy';\n\n/**\n * Calculate entropy of a user password\n * @param {string} password password string entered by the user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getUserPasswordEntropyParamCreator = async (data: UserApi_getUserPasswordEntropy$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'password' is not null or undefined\nif (data['password'] === null || data['password'] === undefined) {\n throw new RequiredError('password','Required parameter password was null or undefined when calling getUserPasswordEntropy.');\n}\nconst localVarPath = `/user/password_entropy`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['password'] !== undefined) {\n localVarQueryParameter['password'] = data['password'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_getUsersAutocomplete$Params {\n input: string,\n}\n\nexport const UserApi_getUsersAutocomplete$Path = '/user/autocomplete';\n\n/**\n * Fetch list of usernames matching the user\\'s partial input\n * @param {string} input partial string entered by the user to engage autocomplete\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_getUsersAutocompleteParamCreator = async (data: UserApi_getUsersAutocomplete$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'input' is not null or undefined\nif (data['input'] === null || data['input'] === undefined) {\n throw new RequiredError('input','Required parameter input was null or undefined when calling getUsersAutocomplete.');\n}\nconst localVarPath = `/user/autocomplete`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['input'] !== undefined) {\n localVarQueryParameter['input'] = data['input'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_initiateResetUserPassword$Params {\n user: InlineObject,\n}\n\nexport const UserApi_initiateResetUserPassword$Path = '/user/initiate_password_reset';\n\n/**\n * send email to reset a user password\n * @param {InlineObject} user \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_initiateResetUserPasswordParamCreator = async (data: UserApi_initiateResetUserPassword$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'user' is not null or undefined\nif (data['user'] === null || data['user'] === undefined) {\n throw new RequiredError('user','Required parameter user was null or undefined when calling initiateResetUserPassword.');\n}\nconst localVarPath = `/user/initiate_password_reset`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['user'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['user'] !== undefined ? data['user'] : {}) : (data['user'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_listCredentials$Params {\n namespace: string,\n page?: number,\n perPage?: number,\n provider?: string,\n}\n\nexport const UserApi_listCredentials$Path = '/credentials/{namespace}';\n\n/**\n * List the credentials available in the namespace\n * @param {string} namespace namespace\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [provider] Show only the credentials from this provider\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_listCredentialsParamCreator = async (data: UserApi_listCredentials$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling listCredentials.');\n}\nconst localVarPath = `/credentials/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['page'] !== undefined) {\n localVarQueryParameter['page'] = data['page'];\n}\nif (data['perPage'] !== undefined) {\n localVarQueryParameter['per_page'] = data['perPage'];\n}\nif (data['provider'] !== undefined) {\n localVarQueryParameter['provider'] = data['provider'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_login$Params {\n loginDetails: Login,\n}\n\nexport const UserApi_login$Path = '/user/login';\n\n/**\n * Login and create a session\n * @param {Login} loginDetails login details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_loginParamCreator = async (data: UserApi_login$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'loginDetails' is not null or undefined\nif (data['loginDetails'] === null || data['loginDetails'] === undefined) {\n throw new RequiredError('loginDetails','Required parameter loginDetails was null or undefined when calling login.');\n}\nconst localVarPath = `/user/login`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['loginDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['loginDetails'] !== undefined ? data['loginDetails'] : {}) : (data['loginDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_logout$Params = void;\n\nexport const UserApi_logout$Path = '/user/logout';\n\n/**\n * Logout and remove login cookie\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_logoutParamCreator = async (data: UserApi_logout$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user/logout`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_oAuth2Consent$Params {\n consentChallenge: string,\n consentDetails: OAuth2ConsentDetails,\n}\n\nexport const UserApi_oAuth2Consent$Path = '/oauth2/consent';\n\n/**\n * Consent oauth2 scopes\n * @param {string} consentChallenge consent challenge for oauth2\n * @param {OAuth2ConsentDetails} consentDetails user\\'s consent details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_oAuth2ConsentParamCreator = async (data: UserApi_oAuth2Consent$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'consentChallenge' is not null or undefined\nif (data['consentChallenge'] === null || data['consentChallenge'] === undefined) {\n throw new RequiredError('consentChallenge','Required parameter consentChallenge was null or undefined when calling oAuth2Consent.');\n}\n// verify required parameter 'consentDetails' is not null or undefined\nif (data['consentDetails'] === null || data['consentDetails'] === undefined) {\n throw new RequiredError('consentDetails','Required parameter consentDetails was null or undefined when calling oAuth2Consent.');\n}\nconst localVarPath = `/oauth2/consent`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['consentChallenge'] !== undefined) {\n localVarQueryParameter['consent_challenge'] = data['consentChallenge'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['consentDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['consentDetails'] !== undefined ? data['consentDetails'] : {}) : (data['consentDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_oAuth2ConsentCheck$Params {\n consentChallenge: string,\n}\n\nexport const UserApi_oAuth2ConsentCheck$Path = '/oauth2/consent/check';\n\n/**\n * Check with oauth server what consent request to show\n * @param {string} consentChallenge consent challenge for oauth2\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_oAuth2ConsentCheckParamCreator = async (data: UserApi_oAuth2ConsentCheck$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'consentChallenge' is not null or undefined\nif (data['consentChallenge'] === null || data['consentChallenge'] === undefined) {\n throw new RequiredError('consentChallenge','Required parameter consentChallenge was null or undefined when calling oAuth2ConsentCheck.');\n}\nconst localVarPath = `/oauth2/consent/check`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['consentChallenge'] !== undefined) {\n localVarQueryParameter['consent_challenge'] = data['consentChallenge'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_oauth2Login$Params {\n loginChallenge: string,\n loginDetails?: Login,\n}\n\nexport const UserApi_oauth2Login$Path = '/oauth2/login';\n\n/**\n * Login to oauth2\n * @param {string} loginChallenge login challenge for oauth2\n * @param {Login} [loginDetails] login details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_oauth2LoginParamCreator = async (data: UserApi_oauth2Login$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'loginChallenge' is not null or undefined\nif (data['loginChallenge'] === null || data['loginChallenge'] === undefined) {\n throw new RequiredError('loginChallenge','Required parameter loginChallenge was null or undefined when calling oauth2Login.');\n}\nconst localVarPath = `/oauth2/login`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['loginChallenge'] !== undefined) {\n localVarQueryParameter['login_challenge'] = data['loginChallenge'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['loginDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['loginDetails'] !== undefined ? data['loginDetails'] : {}) : (data['loginDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_oauth2LoginCheck$Params {\n loginChallenge: string,\n}\n\nexport const UserApi_oauth2LoginCheck$Path = '/oauth2/login/check';\n\n/**\n * Check with oauth server if login is required\n * @param {string} loginChallenge login challenge for oauth2\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_oauth2LoginCheckParamCreator = async (data: UserApi_oauth2LoginCheck$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'loginChallenge' is not null or undefined\nif (data['loginChallenge'] === null || data['loginChallenge'] === undefined) {\n throw new RequiredError('loginChallenge','Required parameter loginChallenge was null or undefined when calling oauth2LoginCheck.');\n}\nconst localVarPath = `/oauth2/login/check`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['loginChallenge'] !== undefined) {\n localVarQueryParameter['login_challenge'] = data['loginChallenge'];\n}\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_patchUserMetaStatus$Params {\n meta: UserMetaSetRequest,\n}\n\nexport const UserApi_patchUserMetaStatus$Path = '/user/meta';\n\n/**\n * Set user\\'s metadata\n * @param {UserMetaSetRequest} meta Update user\\'s metadata\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_patchUserMetaStatusParamCreator = async (data: UserApi_patchUserMetaStatus$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'meta' is not null or undefined\nif (data['meta'] === null || data['meta'] === undefined) {\n throw new RequiredError('meta','Required parameter meta was null or undefined when calling patchUserMetaStatus.');\n}\nconst localVarPath = `/user/meta`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['meta'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['meta'] !== undefined ? data['meta'] : {}) : (data['meta'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_removePaymentDetails$Params {\n namespace: string,\n stripeDetails: StripeDetails,\n}\n\nexport const UserApi_removePaymentDetails$Path = '/payments/{namespace}';\n\n/**\n * Remove payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_removePaymentDetailsParamCreator = async (data: UserApi_removePaymentDetails$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling removePaymentDetails.');\n}\n// verify required parameter 'stripeDetails' is not null or undefined\nif (data['stripeDetails'] === null || data['stripeDetails'] === undefined) {\n throw new RequiredError('stripeDetails','Required parameter stripeDetails was null or undefined when calling removePaymentDetails.');\n}\nconst localVarPath = `/payments/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['stripeDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['stripeDetails'] !== undefined ? data['stripeDetails'] : {}) : (data['stripeDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_requestCredits$Params {\n requestCreditsParams?: UserRequestCredits,\n}\n\nexport const UserApi_requestCredits$Path = '/user/request_credits';\n\n/**\n * Request credits from sales team\n * @param {UserRequestCredits} [requestCreditsParams] User\\'s request for free credits\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_requestCreditsParamCreator = async (data: UserApi_requestCredits$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/user/request_credits`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['requestCreditsParams'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['requestCreditsParams'] !== undefined ? data['requestCreditsParams'] : {}) : (data['requestCreditsParams'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_requestToken$Params {\n tokenRequest?: TokenRequest,\n}\n\nexport const UserApi_requestToken$Path = '/token';\n\n/**\n * Request an authorization token, optionally taken a TokenRequest object to set parameters on the token\n * @param {TokenRequest} [tokenRequest] token request object\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_requestTokenParamCreator = async (data: UserApi_requestToken$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/token`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['tokenRequest'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['tokenRequest'] !== undefined ? data['tokenRequest'] : {}) : (data['tokenRequest'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_resendConfirmEmail$Params {\n user: InlineObject1,\n}\n\nexport const UserApi_resendConfirmEmail$Path = '/user/resend_confirm_email';\n\n/**\n * resend email to confirm user email\n * @param {InlineObject1} user \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_resendConfirmEmailParamCreator = async (data: UserApi_resendConfirmEmail$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'user' is not null or undefined\nif (data['user'] === null || data['user'] === undefined) {\n throw new RequiredError('user','Required parameter user was null or undefined when calling resendConfirmEmail.');\n}\nconst localVarPath = `/user/resend_confirm_email`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['user'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['user'] !== undefined ? data['user'] : {}) : (data['user'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_resetUserPassword$Params {\n user: PasswordReset,\n}\n\nexport const UserApi_resetUserPassword$Path = '/user/password_reset';\n\n/**\n * reset user password\n * @param {PasswordReset} user password to update for user requesting update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_resetUserPasswordParamCreator = async (data: UserApi_resetUserPassword$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'user' is not null or undefined\nif (data['user'] === null || data['user'] === undefined) {\n throw new RequiredError('user','Required parameter user was null or undefined when calling resetUserPassword.');\n}\nconst localVarPath = `/user/password_reset`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['user'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['user'] !== undefined ? data['user'] : {}) : (data['user'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_revokeToken$Params {\n token: string,\n}\n\nexport const UserApi_revokeToken$Path = '/tokens/{token}';\n\n/**\n * revoke an authorization token\n * @param {string} token token name or token itself\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_revokeTokenParamCreator = async (data: UserApi_revokeToken$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'token' is not null or undefined\nif (data['token'] === null || data['token'] === undefined) {\n throw new RequiredError('token','Required parameter token was null or undefined when calling revokeToken.');\n}\nconst localVarPath = `/tokens/{token}`\n .replace(`{${\"token\"}}`, encodeURIComponent(String(data['token'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_setOnboardingItems$Params {\n namespace: string,\n items: OnboardingItems,\n organization?: string,\n}\n\nexport const UserApi_setOnboardingItems$Path = '/onboarding/{namespace}';\n\n/**\n * Set completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {OnboardingItems} items UI informs Rest server for Onboarding item\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_setOnboardingItemsParamCreator = async (data: UserApi_setOnboardingItems$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling setOnboardingItems.');\n}\n// verify required parameter 'items' is not null or undefined\nif (data['items'] === null || data['items'] === undefined) {\n throw new RequiredError('items','Required parameter items was null or undefined when calling setOnboardingItems.');\n}\nconst localVarPath = `/onboarding/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['organization'] !== undefined) {\n localVarQueryParameter['organization'] = data['organization'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['items'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['items'] !== undefined ? data['items'] : {}) : (data['items'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_setPaymentDetails$Params {\n namespace: string,\n stripeDetails: StripeDetails,\n radarSession?: string,\n}\n\nexport const UserApi_setPaymentDetails$Path = '/payments/{namespace}';\n\n/**\n * Set payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {string} [radarSession] Provides fraud protection\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_setPaymentDetailsParamCreator = async (data: UserApi_setPaymentDetails$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling setPaymentDetails.');\n}\n// verify required parameter 'stripeDetails' is not null or undefined\nif (data['stripeDetails'] === null || data['stripeDetails'] === undefined) {\n throw new RequiredError('stripeDetails','Required parameter stripeDetails was null or undefined when calling setPaymentDetails.');\n}\nconst localVarPath = `/payments/{namespace}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\nif (data['radarSession'] !== undefined) {\n localVarQueryParameter['radar_session'] = data['radarSession'];\n}\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['stripeDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['stripeDetails'] !== undefined ? data['stripeDetails'] : {}) : (data['stripeDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_signInPerDomain$Params {\n perDomainDetails: PerDomainSignIn,\n}\n\nexport const UserApi_signInPerDomain$Path = '/user/sso/perdomain';\n\n/**\n * Sign in with company account and create a session\n * @param {PerDomainSignIn} perDomainDetails perdomain details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_signInPerDomainParamCreator = async (data: UserApi_signInPerDomain$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'perDomainDetails' is not null or undefined\nif (data['perDomainDetails'] === null || data['perDomainDetails'] === undefined) {\n throw new RequiredError('perDomainDetails','Required parameter perDomainDetails was null or undefined when calling signInPerDomain.');\n}\nconst localVarPath = `/user/sso/perdomain`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['perDomainDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['perDomainDetails'] !== undefined ? data['perDomainDetails'] : {}) : (data['perDomainDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_signInWithGithub$Params {\n githubDetails: GithubSignIn,\n}\n\nexport const UserApi_signInWithGithub$Path = '/user/sso/github';\n\n/**\n * Sign in with github account and create a session\n * @param {GithubSignIn} githubDetails github details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_signInWithGithubParamCreator = async (data: UserApi_signInWithGithub$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'githubDetails' is not null or undefined\nif (data['githubDetails'] === null || data['githubDetails'] === undefined) {\n throw new RequiredError('githubDetails','Required parameter githubDetails was null or undefined when calling signInWithGithub.');\n}\nconst localVarPath = `/user/sso/github`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['githubDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['githubDetails'] !== undefined ? data['githubDetails'] : {}) : (data['githubDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_signInWithGoogle$Params {\n googleDetails: GoogleSignIn,\n}\n\nexport const UserApi_signInWithGoogle$Path = '/user/sso/google';\n\n/**\n * Sign in with github account and create a session\n * @param {GoogleSignIn} googleDetails google details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_signInWithGoogleParamCreator = async (data: UserApi_signInWithGoogle$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'googleDetails' is not null or undefined\nif (data['googleDetails'] === null || data['googleDetails'] === undefined) {\n throw new RequiredError('googleDetails','Required parameter googleDetails was null or undefined when calling signInWithGoogle.');\n}\nconst localVarPath = `/user/sso/google`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['googleDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['googleDetails'] !== undefined ? data['googleDetails'] : {}) : (data['googleDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_signInWithOkta$Params {\n oktaDetails: OktaSignIn,\n}\n\nexport const UserApi_signInWithOkta$Path = '/user/sso/okta';\n\n/**\n * Sign in with okta account and create a session\n * @param {OktaSignIn} oktaDetails github details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_signInWithOktaParamCreator = async (data: UserApi_signInWithOkta$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'oktaDetails' is not null or undefined\nif (data['oktaDetails'] === null || data['oktaDetails'] === undefined) {\n throw new RequiredError('oktaDetails','Required parameter oktaDetails was null or undefined when calling signInWithOkta.');\n}\nconst localVarPath = `/user/sso/okta`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['oktaDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['oktaDetails'] !== undefined ? data['oktaDetails'] : {}) : (data['oktaDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_signInWithStripe$Params {\n stripeDetails: StripeSignIn,\n}\n\nexport const UserApi_signInWithStripe$Path = '/user/sso/stripe';\n\n/**\n * Sign in with stripe account and create a session\n * @param {StripeSignIn} stripeDetails stripe details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_signInWithStripeParamCreator = async (data: UserApi_signInWithStripe$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'stripeDetails' is not null or undefined\nif (data['stripeDetails'] === null || data['stripeDetails'] === undefined) {\n throw new RequiredError('stripeDetails','Required parameter stripeDetails was null or undefined when calling signInWithStripe.');\n}\nconst localVarPath = `/user/sso/stripe`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['stripeDetails'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['stripeDetails'] !== undefined ? data['stripeDetails'] : {}) : (data['stripeDetails'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_subscribeToArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const UserApi_subscribeToArray$Path = '/payments/pricing/{namespace}/{array}/subscribe';\n\n/**\n * Subscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_subscribeToArrayParamCreator = async (data: UserApi_subscribeToArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling subscribeToArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling subscribeToArray.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}/subscribe`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport type UserApi_tokensGet$Params = void;\n\nexport const UserApi_tokensGet$Path = '/tokens';\n\n/**\n * Fetch a list of user tokens\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_tokensGetParamCreator = async (data: UserApi_tokensGet$Params, options: any = {}): Promise<RequestArgs> => {\nconst localVarPath = `/tokens`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_unsubscribeFromArray$Params {\n namespace: string,\n array: string,\n}\n\nexport const UserApi_unsubscribeFromArray$Path = '/payments/pricing/{namespace}/{array}/subscribe';\n\n/**\n * Unsubscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_unsubscribeFromArrayParamCreator = async (data: UserApi_unsubscribeFromArray$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling unsubscribeFromArray.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling unsubscribeFromArray.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}/subscribe`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_updateCredential$Params {\n namespace: string,\n name: string,\n accessCredential: AccessCredentialUpdate,\n}\n\nexport const UserApi_updateCredential$Path = '/credentials/{namespace}/{name}';\n\n/**\n * Update the named access credential. This will also update the information used to access arrays set to use this credential.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {AccessCredentialUpdate} accessCredential Changes to make to this credential\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_updateCredentialParamCreator = async (data: UserApi_updateCredential$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updateCredential.');\n}\n// verify required parameter 'name' is not null or undefined\nif (data['name'] === null || data['name'] === undefined) {\n throw new RequiredError('name','Required parameter name was null or undefined when calling updateCredential.');\n}\n// verify required parameter 'accessCredential' is not null or undefined\nif (data['accessCredential'] === null || data['accessCredential'] === undefined) {\n throw new RequiredError('accessCredential','Required parameter accessCredential was null or undefined when calling updateCredential.');\n}\nconst localVarPath = `/credentials/{namespace}/{name}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"name\"}}`, encodeURIComponent(String(data['name'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['accessCredential'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['accessCredential'] !== undefined ? data['accessCredential'] : {}) : (data['accessCredential'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_updatePricing$Params {\n namespace: string,\n array: string,\n pricingInfo: PricingInfo,\n}\n\nexport const UserApi_updatePricing$Path = '/payments/pricing/{namespace}/{array}';\n\n/**\n * Update pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} pricingInfo Pricing metadata to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_updatePricingParamCreator = async (data: UserApi_updatePricing$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'namespace' is not null or undefined\nif (data['namespace'] === null || data['namespace'] === undefined) {\n throw new RequiredError('namespace','Required parameter namespace was null or undefined when calling updatePricing.');\n}\n// verify required parameter 'array' is not null or undefined\nif (data['array'] === null || data['array'] === undefined) {\n throw new RequiredError('array','Required parameter array was null or undefined when calling updatePricing.');\n}\n// verify required parameter 'pricingInfo' is not null or undefined\nif (data['pricingInfo'] === null || data['pricingInfo'] === undefined) {\n throw new RequiredError('pricingInfo','Required parameter pricingInfo was null or undefined when calling updatePricing.');\n}\nconst localVarPath = `/payments/pricing/{namespace}/{array}`\n .replace(`{${\"namespace\"}}`, encodeURIComponent(String(data['namespace'])))\n .replace(`{${\"array\"}}`, encodeURIComponent(String(data['array'])));\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['pricingInfo'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['pricingInfo'] !== undefined ? data['pricingInfo'] : {}) : (data['pricingInfo'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_userRegistration$Params {\n signupParams: UserSignupParams,\n}\n\nexport const UserApi_userRegistration$Path = '/user/signup';\n\n/**\n * Register a new user\n * @param {UserSignupParams} signupParams user being registered\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_userRegistrationParamCreator = async (data: UserApi_userRegistration$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'signupParams' is not null or undefined\nif (data['signupParams'] === null || data['signupParams'] === undefined) {\n throw new RequiredError('signupParams','Required parameter signupParams was null or undefined when calling userRegistration.');\n}\nconst localVarPath = `/user/signup`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['signupParams'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['signupParams'] !== undefined ? data['signupParams'] : {}) : (data['signupParams'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\nexport interface UserApi_userUpdate$Params {\n user: UserUpdateParams,\n}\n\nexport const UserApi_userUpdate$Path = '/user';\n\n/**\n * Update user details\n * @param {UserUpdateParams} user user details to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n*/\nconst UserApi_userUpdateParamCreator = async (data: UserApi_userUpdate$Params, options: any = {}): Promise<RequestArgs> => {\n// verify required parameter 'user' is not null or undefined\nif (data['user'] === null || data['user'] === undefined) {\n throw new RequiredError('user','Required parameter user was null or undefined when calling userUpdate.');\n}\nconst localVarPath = `/user`;\nconst localVarUrlObj = globalImportUrl.parse(localVarPath, true);\nlet baseOptions: any;\n\nconst localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\nconst localVarHeaderParameter = {} as any;\nconst localVarQueryParameter = {} as any;\n\n\n localVarHeaderParameter['Content-Type'] = 'application/json';\n localVarUrlObj.query = {...localVarUrlObj.query, ...localVarQueryParameter, ...options.query};\n // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943\n // @ts-ignore\n delete localVarUrlObj.search;\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const needsSerialization = (localVarRequestOptions.headers['Content-Type'] !== 'application/octet-stream' && (typeof data['user'] !== \"string\") || localVarRequestOptions.headers['Content-Type'] === 'application/json');\n localVarRequestOptions.data = needsSerialization ? JSON.stringify(data['user'] !== undefined ? data['user'] : {}) : (data['user'] || \"\");\n return {\n url: globalImportUrl.format(localVarUrlObj),\n options: localVarRequestOptions,\n };\n};\n\n\nexport type UserApi_addCredential$Response = void;\n\n/**\n * Create a new credential for the namespace\n * @param {string} namespace namespace\n * @param {AccessCredentialUpdate} accessCredential The new credentials to be created.\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_addCredential(data: UserApi_addCredential$Params, options?: any): Promise<AxiosResponse<UserApi_addCredential$Response>> {\n const localVarAxiosArgs = await UserApi_addCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_changePassword$Response = void;\n\n/**\n * Change user password\n * @param {UserChangePassword} [changePasswordParams] User\\'s new password\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_changePassword(data: UserApi_changePassword$Params, options?: any): Promise<AxiosResponse<UserApi_changePassword$Response>> {\n const localVarAxiosArgs = await UserApi_changePasswordParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_checkLoginCookie$Response = InlineResponse200;\n\n/**\n * Get login cookie status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_checkLoginCookie(data: UserApi_checkLoginCookie$Params, options?: any): Promise<AxiosResponse<UserApi_checkLoginCookie$Response>> {\n const localVarAxiosArgs = await UserApi_checkLoginCookieParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_confirmEmail$Response = void;\n\n/**\n * confirm user email\n * @param {ConfirmEmail} user token to use for user requesting email confirmation\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_confirmEmail(data: UserApi_confirmEmail$Params, options?: any): Promise<AxiosResponse<UserApi_confirmEmail$Response>> {\n const localVarAxiosArgs = await UserApi_confirmEmailParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_createPricing$Response = void;\n\n/**\n * Create pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} [pricingInfo] Array pricing details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_createPricing(data: UserApi_createPricing$Params, options?: any): Promise<AxiosResponse<UserApi_createPricing$Response>> {\n const localVarAxiosArgs = await UserApi_createPricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_deleteCredential$Response = void;\n\n/**\n * Delete the named access credential. Any arrays still set to use this credential will use the namespace\\'s default and may become unreachable.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_deleteCredential(data: UserApi_deleteCredential$Params, options?: any): Promise<AxiosResponse<UserApi_deleteCredential$Response>> {\n const localVarAxiosArgs = await UserApi_deleteCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_deleteOnboardingItems$Response = void;\n\n/**\n * Deletes completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_deleteOnboardingItems(data: UserApi_deleteOnboardingItems$Params, options?: any): Promise<AxiosResponse<UserApi_deleteOnboardingItems$Response>> {\n const localVarAxiosArgs = await UserApi_deleteOnboardingItemsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_deletePricing$Response = void;\n\n/**\n * Delete pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_deletePricing(data: UserApi_deletePricing$Params, options?: any): Promise<AxiosResponse<UserApi_deletePricing$Response>> {\n const localVarAxiosArgs = await UserApi_deletePricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_deleteUser$Response = void;\n\n/**\n * delete a user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_deleteUser(data: UserApi_deleteUser$Params, options?: any): Promise<AxiosResponse<UserApi_deleteUser$Response>> {\n const localVarAxiosArgs = await UserApi_deleteUserParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getBillingOverview$Response = BillingOverview;\n\n/**\n * Get billing overview\n * @param {string} [namespace] namespace to filter, defaults to requesting user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getBillingOverview(data: UserApi_getBillingOverview$Params, options?: any): Promise<AxiosResponse<UserApi_getBillingOverview$Response>> {\n const localVarAxiosArgs = await UserApi_getBillingOverviewParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getChargeOperationsAllowed$Response = void;\n\n/**\n * Get whether operations which incur charges are allowed\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getChargeOperationsAllowed(data: UserApi_getChargeOperationsAllowed$Params, options?: any): Promise<AxiosResponse<UserApi_getChargeOperationsAllowed$Response>> {\n const localVarAxiosArgs = await UserApi_getChargeOperationsAllowedParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getCredential$Response = AccessCredential;\n\n/**\n * Retrieve an access credential by name\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getCredential(data: UserApi_getCredential$Params, options?: any): Promise<AxiosResponse<UserApi_getCredential$Response>> {\n const localVarAxiosArgs = await UserApi_getCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getOnboardingItems$Response = OnboardingItems;\n\n/**\n * Get onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getOnboardingItems(data: UserApi_getOnboardingItems$Params, options?: any): Promise<AxiosResponse<UserApi_getOnboardingItems$Response>> {\n const localVarAxiosArgs = await UserApi_getOnboardingItemsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getOnboardingState$Response = OnboardingState;\n\n/**\n * Get database state for specific onboarding steps that are not described or saved as onboarding items i.e. The existence of registered assets or the existence of members in an organization etc \n * @param {string} namespace an organization or user\\'s uuid\n * @param {string} namespaceType the namespace type to check (each type makes different requests to REST and returns a different response)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getOnboardingState(data: UserApi_getOnboardingState$Params, options?: any): Promise<AxiosResponse<UserApi_getOnboardingState$Response>> {\n const localVarAxiosArgs = await UserApi_getOnboardingStateParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getPaymentDetails$Response = PaymentMethod;\n\n/**\n * Get payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getPaymentDetails(data: UserApi_getPaymentDetails$Params, options?: any): Promise<AxiosResponse<UserApi_getPaymentDetails$Response>> {\n const localVarAxiosArgs = await UserApi_getPaymentDetailsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getPerDomainEndpoint$Response = PerDomainOIDCEndpoint;\n\n/**\n * Given an email address, returns the OpenID Connect endpoint where the user should be sent for login. \n * @param {string} [email] The email address of the user who wants to use per-domain SSO. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getPerDomainEndpoint(data: UserApi_getPerDomainEndpoint$Params, options?: any): Promise<AxiosResponse<UserApi_getPerDomainEndpoint$Response>> {\n const localVarAxiosArgs = await UserApi_getPerDomainEndpointParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getSession$Response = Token;\n\n/**\n * Get scoped session token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getSession(data: UserApi_getSession$Params, options?: any): Promise<AxiosResponse<UserApi_getSession$Response>> {\n const localVarAxiosArgs = await UserApi_getSessionParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getTokenScopes$Response = Array<TokenScope>;\n\n/**\n * retrieves available token scopes for a user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getTokenScopes(data: UserApi_getTokenScopes$Params, options?: any): Promise<AxiosResponse<UserApi_getTokenScopes$Response>> {\n const localVarAxiosArgs = await UserApi_getTokenScopesParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getUser$Response = User;\n\n/**\n * Fetch a user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getUser(data: UserApi_getUser$Params, options?: any): Promise<AxiosResponse<UserApi_getUser$Response>> {\n const localVarAxiosArgs = await UserApi_getUserParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getUserMetaStatus$Response = UserMetaGetResponse;\n\n/**\n * Get status about user\\'s metadata\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getUserMetaStatus(data: UserApi_getUserMetaStatus$Params, options?: any): Promise<AxiosResponse<UserApi_getUserMetaStatus$Response>> {\n const localVarAxiosArgs = await UserApi_getUserMetaStatusParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getUserPasswordEntropy$Response = UserPasswordEntropy;\n\n/**\n * Calculate entropy of a user password\n * @param {string} password password string entered by the user\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getUserPasswordEntropy(data: UserApi_getUserPasswordEntropy$Params, options?: any): Promise<AxiosResponse<UserApi_getUserPasswordEntropy$Response>> {\n const localVarAxiosArgs = await UserApi_getUserPasswordEntropyParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_getUsersAutocomplete$Response = Array<string>;\n\n/**\n * Fetch list of usernames matching the user\\'s partial input\n * @param {string} input partial string entered by the user to engage autocomplete\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_getUsersAutocomplete(data: UserApi_getUsersAutocomplete$Params, options?: any): Promise<AxiosResponse<UserApi_getUsersAutocomplete$Response>> {\n const localVarAxiosArgs = await UserApi_getUsersAutocompleteParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_initiateResetUserPassword$Response = void;\n\n/**\n * send email to reset a user password\n * @param {InlineObject} user \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_initiateResetUserPassword(data: UserApi_initiateResetUserPassword$Params, options?: any): Promise<AxiosResponse<UserApi_initiateResetUserPassword$Response>> {\n const localVarAxiosArgs = await UserApi_initiateResetUserPasswordParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_listCredentials$Response = AccessCredentialsData;\n\n/**\n * List the credentials available in the namespace\n * @param {string} namespace namespace\n * @param {number} [page] pagination offset\n * @param {number} [perPage] pagination limit\n * @param {string} [provider] Show only the credentials from this provider\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_listCredentials(data: UserApi_listCredentials$Params, options?: any): Promise<AxiosResponse<UserApi_listCredentials$Response>> {\n const localVarAxiosArgs = await UserApi_listCredentialsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_login$Response = void;\n\n/**\n * Login and create a session\n * @param {Login} loginDetails login details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_login(data: UserApi_login$Params, options?: any): Promise<AxiosResponse<UserApi_login$Response>> {\n const localVarAxiosArgs = await UserApi_loginParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_logout$Response = void;\n\n/**\n * Logout and remove login cookie\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_logout(data: UserApi_logout$Params, options?: any): Promise<AxiosResponse<UserApi_logout$Response>> {\n const localVarAxiosArgs = await UserApi_logoutParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_oAuth2Consent$Response = OAuth2Redirect;\n\n/**\n * Consent oauth2 scopes\n * @param {string} consentChallenge consent challenge for oauth2\n * @param {OAuth2ConsentDetails} consentDetails user\\'s consent details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_oAuth2Consent(data: UserApi_oAuth2Consent$Params, options?: any): Promise<AxiosResponse<UserApi_oAuth2Consent$Response>> {\n const localVarAxiosArgs = await UserApi_oAuth2ConsentParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_oAuth2ConsentCheck$Response = OAuth2ConsentDetails;\n\n/**\n * Check with oauth server what consent request to show\n * @param {string} consentChallenge consent challenge for oauth2\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_oAuth2ConsentCheck(data: UserApi_oAuth2ConsentCheck$Params, options?: any): Promise<AxiosResponse<UserApi_oAuth2ConsentCheck$Response>> {\n const localVarAxiosArgs = await UserApi_oAuth2ConsentCheckParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_oauth2Login$Response = OAuth2Redirect;\n\n/**\n * Login to oauth2\n * @param {string} loginChallenge login challenge for oauth2\n * @param {Login} [loginDetails] login details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_oauth2Login(data: UserApi_oauth2Login$Params, options?: any): Promise<AxiosResponse<UserApi_oauth2Login$Response>> {\n const localVarAxiosArgs = await UserApi_oauth2LoginParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_oauth2LoginCheck$Response = OAuth2Redirect;\n\n/**\n * Check with oauth server if login is required\n * @param {string} loginChallenge login challenge for oauth2\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_oauth2LoginCheck(data: UserApi_oauth2LoginCheck$Params, options?: any): Promise<AxiosResponse<UserApi_oauth2LoginCheck$Response>> {\n const localVarAxiosArgs = await UserApi_oauth2LoginCheckParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_patchUserMetaStatus$Response = void;\n\n/**\n * Set user\\'s metadata\n * @param {UserMetaSetRequest} meta Update user\\'s metadata\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_patchUserMetaStatus(data: UserApi_patchUserMetaStatus$Params, options?: any): Promise<AxiosResponse<UserApi_patchUserMetaStatus$Response>> {\n const localVarAxiosArgs = await UserApi_patchUserMetaStatusParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_removePaymentDetails$Response = void;\n\n/**\n * Remove payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_removePaymentDetails(data: UserApi_removePaymentDetails$Params, options?: any): Promise<AxiosResponse<UserApi_removePaymentDetails$Response>> {\n const localVarAxiosArgs = await UserApi_removePaymentDetailsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_requestCredits$Response = void;\n\n/**\n * Request credits from sales team\n * @param {UserRequestCredits} [requestCreditsParams] User\\'s request for free credits\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_requestCredits(data: UserApi_requestCredits$Params, options?: any): Promise<AxiosResponse<UserApi_requestCredits$Response>> {\n const localVarAxiosArgs = await UserApi_requestCreditsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_requestToken$Response = Token;\n\n/**\n * Request an authorization token, optionally taken a TokenRequest object to set parameters on the token\n * @param {TokenRequest} [tokenRequest] token request object\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_requestToken(data: UserApi_requestToken$Params, options?: any): Promise<AxiosResponse<UserApi_requestToken$Response>> {\n const localVarAxiosArgs = await UserApi_requestTokenParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_resendConfirmEmail$Response = void;\n\n/**\n * resend email to confirm user email\n * @param {InlineObject1} user \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_resendConfirmEmail(data: UserApi_resendConfirmEmail$Params, options?: any): Promise<AxiosResponse<UserApi_resendConfirmEmail$Response>> {\n const localVarAxiosArgs = await UserApi_resendConfirmEmailParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_resetUserPassword$Response = void;\n\n/**\n * reset user password\n * @param {PasswordReset} user password to update for user requesting update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_resetUserPassword(data: UserApi_resetUserPassword$Params, options?: any): Promise<AxiosResponse<UserApi_resetUserPassword$Response>> {\n const localVarAxiosArgs = await UserApi_resetUserPasswordParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_revokeToken$Response = void;\n\n/**\n * revoke an authorization token\n * @param {string} token token name or token itself\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_revokeToken(data: UserApi_revokeToken$Params, options?: any): Promise<AxiosResponse<UserApi_revokeToken$Response>> {\n const localVarAxiosArgs = await UserApi_revokeTokenParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_setOnboardingItems$Response = void;\n\n/**\n * Set completed Onboarding items\n * @param {string} namespace an organization or user\\'s uuid\n * @param {OnboardingItems} items UI informs Rest server for Onboarding item\n * @param {string} [organization] Optional organization UUID. This is used for organization onboarding items. Organization onboarding items are unique per-user per-organization. Meaning that the user has different organization onboarding progress for each organization they own. \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_setOnboardingItems(data: UserApi_setOnboardingItems$Params, options?: any): Promise<AxiosResponse<UserApi_setOnboardingItems$Response>> {\n const localVarAxiosArgs = await UserApi_setOnboardingItemsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_setPaymentDetails$Response = void;\n\n/**\n * Set payment details\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {StripeDetails} stripeDetails Stripe one use token from element card\n * @param {string} [radarSession] Provides fraud protection\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_setPaymentDetails(data: UserApi_setPaymentDetails$Params, options?: any): Promise<AxiosResponse<UserApi_setPaymentDetails$Response>> {\n const localVarAxiosArgs = await UserApi_setPaymentDetailsParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_signInPerDomain$Response = void;\n\n/**\n * Sign in with company account and create a session\n * @param {PerDomainSignIn} perDomainDetails perdomain details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_signInPerDomain(data: UserApi_signInPerDomain$Params, options?: any): Promise<AxiosResponse<UserApi_signInPerDomain$Response>> {\n const localVarAxiosArgs = await UserApi_signInPerDomainParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_signInWithGithub$Response = void;\n\n/**\n * Sign in with github account and create a session\n * @param {GithubSignIn} githubDetails github details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_signInWithGithub(data: UserApi_signInWithGithub$Params, options?: any): Promise<AxiosResponse<UserApi_signInWithGithub$Response>> {\n const localVarAxiosArgs = await UserApi_signInWithGithubParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_signInWithGoogle$Response = void;\n\n/**\n * Sign in with github account and create a session\n * @param {GoogleSignIn} googleDetails google details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_signInWithGoogle(data: UserApi_signInWithGoogle$Params, options?: any): Promise<AxiosResponse<UserApi_signInWithGoogle$Response>> {\n const localVarAxiosArgs = await UserApi_signInWithGoogleParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_signInWithOkta$Response = void;\n\n/**\n * Sign in with okta account and create a session\n * @param {OktaSignIn} oktaDetails github details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_signInWithOkta(data: UserApi_signInWithOkta$Params, options?: any): Promise<AxiosResponse<UserApi_signInWithOkta$Response>> {\n const localVarAxiosArgs = await UserApi_signInWithOktaParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_signInWithStripe$Response = void;\n\n/**\n * Sign in with stripe account and create a session\n * @param {StripeSignIn} stripeDetails stripe details\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_signInWithStripe(data: UserApi_signInWithStripe$Params, options?: any): Promise<AxiosResponse<UserApi_signInWithStripe$Response>> {\n const localVarAxiosArgs = await UserApi_signInWithStripeParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_subscribeToArray$Response = void;\n\n/**\n * Subscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_subscribeToArray(data: UserApi_subscribeToArray$Params, options?: any): Promise<AxiosResponse<UserApi_subscribeToArray$Response>> {\n const localVarAxiosArgs = await UserApi_subscribeToArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_tokensGet$Response = Array<Token>;\n\n/**\n * Fetch a list of user tokens\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_tokensGet(data: UserApi_tokensGet$Params, options?: any): Promise<AxiosResponse<UserApi_tokensGet$Response>> {\n const localVarAxiosArgs = await UserApi_tokensGetParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_unsubscribeFromArray$Response = void;\n\n/**\n * Unsubscribe to an array set up for monetization\n * @param {string} namespace Namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_unsubscribeFromArray(data: UserApi_unsubscribeFromArray$Params, options?: any): Promise<AxiosResponse<UserApi_unsubscribeFromArray$Response>> {\n const localVarAxiosArgs = await UserApi_unsubscribeFromArrayParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_updateCredential$Response = void;\n\n/**\n * Update the named access credential. This will also update the information used to access arrays set to use this credential.\n * @param {string} namespace namespace\n * @param {string} name A URL-safe version of the credential\\'s user-provided name\n * @param {AccessCredentialUpdate} accessCredential Changes to make to this credential\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_updateCredential(data: UserApi_updateCredential$Params, options?: any): Promise<AxiosResponse<UserApi_updateCredential$Response>> {\n const localVarAxiosArgs = await UserApi_updateCredentialParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_updatePricing$Response = void;\n\n/**\n * Update pricing info for a specified URI in a namespace\n * @param {string} namespace namespace array is in (an organization name or user\\'s username)\n * @param {string} array name/uri of array that is url-encoded\n * @param {PricingInfo} pricingInfo Pricing metadata to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_updatePricing(data: UserApi_updatePricing$Params, options?: any): Promise<AxiosResponse<UserApi_updatePricing$Response>> {\n const localVarAxiosArgs = await UserApi_updatePricingParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_userRegistration$Response = void;\n\n/**\n * Register a new user\n * @param {UserSignupParams} signupParams user being registered\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_userRegistration(data: UserApi_userRegistration$Params, options?: any): Promise<AxiosResponse<UserApi_userRegistration$Response>> {\n const localVarAxiosArgs = await UserApi_userRegistrationParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\nexport type UserApi_userUpdate$Response = void;\n\n/**\n * Update user details\n * @param {UserUpdateParams} user user details to update\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\nexport async function UserApi_userUpdate(data: UserApi_userUpdate$Params, options?: any): Promise<AxiosResponse<UserApi_userUpdate$Response>> {\n const localVarAxiosArgs = await UserApi_userUpdateParamCreator(data, options);\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n};\n\n\n","/* eslint-disable */\n// tslint:disable\n/**\n * TileDB UI REST API\n * TileDB UI\n *\n * The version of the OpenAPI document: 1.1.3\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from \"./configuration\";\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport globalAxios, { AxiosInstance } from 'axios';\n\nexport const BASE_PATH = \"http://localhost/v1/api\".replace(/\\/+$/, \"\");\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\n/**\n *\n * @export\n * @interface RequestArgs\n */\nexport interface RequestArgs {\n url: string;\n options: any;\n}\n\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n protected configuration: Configuration | undefined;\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePath || this.basePath;\n }\n }\n};\n\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}","// extracted by mini-css-extract-plugin\nexport default {\"active\":\"AssetTypeIcon_active__n9qGi\",\"icon--array\":\"AssetTypeIcon_icon--array__gqFS6\",\"icon--file\":\"AssetTypeIcon_icon--file__tTR-E\",\"icon--vcf\":\"AssetTypeIcon_icon--vcf__vVncM\",\"icon--soma\":\"AssetTypeIcon_icon--soma__O3Xbe\",\"icon--bioimg\":\"AssetTypeIcon_icon--bioimg__JmZIn\",\"icon--vector_search\":\"AssetTypeIcon_icon--vector_search__X3TbR\",\"icon--pointcloud\":\"AssetTypeIcon_icon--pointcloud__EwYcp\",\"icon--geometry\":\"AssetTypeIcon_icon--geometry__7czjl\",\"icon--raster\":\"AssetTypeIcon_icon--raster__yqbGt\",\"icon--notebook\":\"AssetTypeIcon_icon--notebook__jdVfE\",\"icon--dashboard\":\"AssetTypeIcon_icon--dashboard__ZDVdJ\",\"icon--registered_task_graph\":\"AssetTypeIcon_icon--registered_task_graph__4y+Mo\",\"icon--user_defined_function\":\"AssetTypeIcon_icon--user_defined_function__4sov5\",\"icon--ml_model\":\"AssetTypeIcon_icon--ml_model__Ke7wv\",\"icon--group\":\"AssetTypeIcon_icon--group__CxFHE\",\"icon--mime-type--application-vnd-tiledb-v1-array\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-array__rvGRn\",\"icon--mime-type--application-vnd-tiledb-v1-notebook\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-notebook__lc1E5\",\"icon--mime-type--application-vnd-tiledb-v1-user_defined_function\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-user_defined_function__Wvkl5\",\"icon--mime-type--application-vnd-tiledb-v1-ml_model\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-ml_model__NDy9r\",\"icon--mime-type--application-vnd-tiledb-v1-registered_task_graph\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-registered_task_graph__-nc0j\",\"icon--mime-type--application-vnd-tiledb-v1-group\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-group__F7ao6\",\"icon--mime-type--application-vnd-tiledb-v1-vcf\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-vcf__9PtBX\",\"icon--mime-type--application-vnd-tiledb-v1-soma\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-soma__ERJud\",\"icon--mime-type--application-vnd-tiledb-v1-pointcloud\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-pointcloud__BIeAD\",\"icon--mime-type--application-vnd-tiledb-v1-bioimg\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-bioimg__aghhK\",\"icon--mime-type--application-vnd-tiledb-v1-geometry\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-geometry__X2pEK\",\"icon--mime-type--application-vnd-tiledb-v1-raster\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-raster__mcOsP\",\"icon--mime-type--application-vnd-tiledb-v1-vector_search\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-vector_search__kJAbB\",\"icon--mime-type--application-vnd-tiledb-v1-octet-stream\":\"AssetTypeIcon_icon--mime-type--application-vnd-tiledb-v1-octet-stream__Hkiso\",\"icon--mime-type--text-csv\":\"AssetTypeIcon_icon--mime-type--text-csv__Mw3Nz\",\"icon--mime-type--application-pdf\":\"AssetTypeIcon_icon--mime-type--application-pdf__iknQq\",\"icon--mime-type--application-image-jpeg\":\"AssetTypeIcon_icon--mime-type--application-image-jpeg__JR-Y7\",\"icon--mime-type--application-image-png\":\"AssetTypeIcon_icon--mime-type--application-image-png__-Xyly\",\"icon--mime-type--application-image-tiff\":\"AssetTypeIcon_icon--mime-type--application-image-tiff__is8WF\",\"icon--mime-type--application-text-plain\":\"AssetTypeIcon_icon--mime-type--application-text-plain__ESCSO\",\"icon--mime-type--application-application-vnd-openxmlformats-officedocument-wordprocessingml-document\":\"AssetTypeIcon_icon--mime-type--application-application-vnd-openxmlformats-officedocument-wordprocessingml-document__cm70K\",\"icon--mime-type--application-json\":\"AssetTypeIcon_icon--mime-type--application-json__OvrIP\",\"icon--mime-type--application-gzip\":\"AssetTypeIcon_icon--mime-type--application-gzip__b1Mfs\",\"icon--mime-type--audio-wav\":\"AssetTypeIcon_icon--mime-type--audio-wav__rh6aQ\",\"icon--mime-type--audio-text-html\":\"AssetTypeIcon_icon--mime-type--audio-text-html__sR9XZ\",\"icon--mime-type--audio-text-vcard\":\"AssetTypeIcon_icon--mime-type--audio-text-vcard__bDDsz\",\"icon--mime-type--application-x-hdf\":\"AssetTypeIcon_icon--mime-type--application-x-hdf__SsEBP\",\"icon--mime-type--application-x-tar\":\"AssetTypeIcon_icon--mime-type--application-x-tar__+ulwt\",\"icon--mime-type--image-gif\":\"AssetTypeIcon_icon--mime-type--image-gif__t4+m0\",\"icon--mime-type--text-xml\":\"AssetTypeIcon_icon--mime-type--text-xml__ZbhTJ\",\"icon--mime-type--video-mp4\":\"AssetTypeIcon_icon--mime-type--video-mp4__foaz6\"};","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M8.65875 42.2323H39.621C41.6354 42.2323 43.2022 41.6634 44.3213 40.5256C45.4404 39.3879 46 37.7496 46 35.6108V15.8957C46 13.757 45.428 12.1187 44.284 10.9809C43.14 9.84315 41.4987 9.27426 39.3599 9.27426H22.9089C22.1752 9.27426 21.5504 9.181 21.0344 8.99448C20.5183 8.80796 19.9557 8.47844 19.3464 8.00593L18.4138 7.2785C17.9288 6.89303 17.4718 6.59149 17.0428 6.37389C16.6138 6.15628 16.1444 6.00085 15.6346 5.90759C15.1248 5.81433 14.5093 5.7677 13.7881 5.7677H8.3417C6.37703 5.7677 4.82892 6.33659 3.69736 7.47435C2.56581 8.61212 2.00003 10.2442 2.00003 12.3705V35.6108C2.00003 37.7496 2.57514 39.3878 3.72534 40.5256C4.87554 41.6634 6.51999 42.2323 8.65875 42.2323ZM2 21.2675V18.2086H45.9999V21.2675H2Z\" />,\n 'group'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 3C4.34315 3 3 4.34315 3 6V42C3 43.6569 4.34315 45 6 45H42C43.6569 45 45 43.6569 45 42V6C45 4.34315 43.6569 3 42 3H6ZM8.25 31.6978V15.6H13.6893L17.4308 24.7179H17.6194L21.3609 15.6H26.8002V31.6978H22.5242V22.3913H22.3985L18.8142 31.5721H16.236L12.6517 22.3284H12.526V31.6978H8.25ZM39.75 31.6978H28.8714V15.6H33.2417V28.1764H39.75V31.6978Z\"\n />,\n 'ml model'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M33.596 3C34.368 3 34.996 3.628 34.996 4.4V7.6C34.996 8.374 34.368 9 33.596 9H31.474C28.182 9 25.354 11.29 24.644 14.47L24.57 14.84L24.21 16.986L30.584 16.988C31.358 16.988 31.984 17.614 31.984 18.388V21.588C31.984 22.362 31.358 22.988 30.584 22.988H23.2L21.324 34.156C20.298 40.256 15.126 44.764 8.99 44.992L8.504 45H6.4C5.626 45 5 44.374 5 43.6V40.4C5 39.628 5.626 39 6.4 39H8.504C11.796 39 14.624 36.712 15.334 33.532L15.406 33.162L17.116 22.986L13.384 22.988C12.61 22.988 11.984 22.362 11.984 21.588V18.388C11.984 17.614 12.61 16.988 13.384 16.988H18.124L18.654 13.846C19.68 7.746 24.852 3.236 30.988 3.01L31.474 3H33.594H33.596Z\" />\n <path d=\"M31.368 27.8361L35.52 31.9881L39.672 27.8361C40.14 27.3681 40.9 27.3681 41.368 27.8361L43.208 29.6761C43.676 30.1441 43.676 30.9041 43.208 31.3721L39.056 35.5241L43.206 39.6761C43.676 40.1441 43.676 40.9041 43.206 41.3721L41.368 43.2121C40.9 43.6801 40.14 43.6801 39.672 43.2121L35.52 39.0601L31.368 43.2101C30.9 43.6801 30.14 43.6801 29.672 43.2101L27.832 41.3721C27.364 40.9041 27.364 40.1441 27.832 39.6761L31.984 35.5241L27.832 31.3721C27.364 30.9041 27.364 30.1441 27.832 29.6761L29.672 27.8361C30.14 27.3681 30.9 27.3681 31.368 27.8361Z\" />\n </>,\n 'udf'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M38.1181 28.0086C37.1476 28.0086 36.3037 28.3883 35.6286 28.9369L29.848 25.6035C30.0168 25.055 30.1434 24.4643 30.1434 23.8314C30.1434 23.1985 30.0168 22.6077 29.848 22.0592L35.6286 18.7259C36.3037 19.3166 37.1898 19.6542 38.1181 19.6542C40.27 19.6542 41.9999 17.9242 41.9999 15.7723C41.9999 13.6204 40.27 11.8905 38.1181 11.8905C35.9662 11.8905 34.2362 13.6204 34.2362 15.7723C34.2362 16.0255 34.2784 16.2364 34.3206 16.4474L28.54 19.7807C27.7383 18.8947 26.6835 18.2618 25.4598 17.9664V11.2997C26.9366 10.7512 28.0337 9.3588 28.0337 7.67104C28.0337 5.51914 26.3037 3.78918 24.1518 3.78918C21.9999 3.78918 20.27 5.51914 20.27 7.67104C20.27 9.3588 21.367 10.7512 22.8438 11.2997V17.9664C21.6202 18.2196 20.5653 18.8947 19.7636 19.7386L13.983 16.4052C14.0252 16.1942 14.0674 15.9411 14.0674 15.7301C14.0674 13.5782 12.3375 11.8483 10.1856 11.8483C8.03367 11.8483 6.30371 13.5782 6.30371 15.7301C6.30371 17.882 8.03367 19.612 10.1856 19.612C11.156 19.612 11.9999 19.2322 12.675 18.6837L18.4556 22.017C18.2868 22.5656 18.1603 23.1563 18.1603 23.7892C18.1603 24.4221 18.2868 25.0128 18.4556 25.5613L12.675 28.8947C11.9999 28.304 11.1138 27.9664 10.1856 27.9664C8.03367 27.9664 6.30371 29.6964 6.30371 31.8483C6.30371 34.0002 8.03367 35.7301 10.1856 35.7301C12.3375 35.7301 14.0674 34.0002 14.0674 31.8483C14.0674 31.5951 14.0252 31.3841 13.983 31.1732L19.7636 27.8398C20.5653 28.7259 21.6202 29.3588 22.8438 29.612V36.2786C21.367 36.8272 20.27 38.2196 20.27 39.9073C20.27 42.0592 21.9999 43.7892 24.1518 43.7892C26.3037 43.7892 28.0337 42.0592 28.0337 39.9073C28.0337 38.2196 26.9366 36.8272 25.4598 36.2786V29.6964C26.6835 29.4432 27.7383 28.7681 28.54 27.882L34.3206 31.2153C34.2784 31.4263 34.2362 31.6795 34.2362 31.8904C34.2362 34.0423 35.9662 35.7723 38.1181 35.7723C40.27 35.7723 41.9999 34.0423 41.9999 31.8904C41.9999 29.7807 40.2278 28.0086 38.1181 28.0086ZM24.1096 27.2069C22.2531 27.2069 20.7341 25.6879 20.7341 23.8314C20.7341 21.9748 22.2531 20.4559 24.1096 20.4559C25.9662 20.4559 27.4851 21.9748 27.4851 23.8314C27.4851 25.6879 25.9662 27.2069 24.1096 27.2069Z\" />,\n 'vector search'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M38 4H10C8.4087 4 6.88258 4.63214 5.75736 5.75736C4.63214 6.88258 4 8.4087 4 10V38C4 39.5913 4.63214 41.1174 5.75736 42.2426C6.88258 43.3679 8.4087 44 10 44H38C38.7879 44 39.5681 43.8448 40.2961 43.5433C41.0241 43.2418 41.6855 42.7998 42.2426 42.2426C42.7998 41.6855 43.2418 41.0241 43.5433 40.2961C43.8448 39.5681 44 38.7879 44 38V10C44 9.21207 43.8448 8.43185 43.5433 7.7039C43.2418 6.97595 42.7998 6.31451 42.2426 5.75736C41.6855 5.20021 41.0241 4.75825 40.2961 4.45672C39.5681 4.15519 38.7879 4 38 4ZM40 10V16H20.6667V8H38C38.5304 8 39.0391 8.21071 39.4142 8.58579C39.7893 8.96086 40 9.46957 40 10ZM20.6667 20H40V28H20.6667V20ZM16.6667 28H8V20H16.6667V28ZM10 8H16.6667V16H8V10C8 9.46957 8.21071 8.96086 8.58579 8.58579C8.96086 8.21071 9.46957 8 10 8ZM8 38V32H16.6667V40H10C9.46957 40 8.96086 39.7893 8.58579 39.4142C8.21071 39.0391 8 38.5304 8 38ZM38 40H20.6667V32H40V38C40 38.5304 39.7893 39.0391 39.4142 39.4142C39.0391 39.7893 38.5304 40 38 40Z\" />,\n 'csv'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M13.0213 26.68H11.6213V22.18H12.7413C13.128 22.18 13.4513 22.2367 13.7113 22.35C13.978 22.4567 14.1913 22.6133 14.3513 22.82C14.5113 23.0267 14.6247 23.2767 14.6913 23.57C14.7647 23.8567 14.8013 24.18 14.8013 24.54C14.8013 24.9333 14.7513 25.2667 14.6513 25.54C14.5513 25.8133 14.418 26.0367 14.2513 26.21C14.0847 26.3767 13.8947 26.4967 13.6813 26.57C13.468 26.6433 13.248 26.68 13.0213 26.68Z\" />\n <path d=\"M18.8234 25.34C18.7568 25.0533 18.7234 24.76 18.7234 24.46C18.7234 24.1467 18.7568 23.8433 18.8234 23.55C18.8968 23.2567 19.0101 22.9967 19.1634 22.77C19.3168 22.5367 19.5168 22.3533 19.7634 22.22C20.0101 22.08 20.3101 22.01 20.6634 22.01C21.0168 22.01 21.3168 22.08 21.5634 22.22C21.8101 22.3533 22.0101 22.5367 22.1634 22.77C22.3168 22.9967 22.4268 23.2567 22.4934 23.55C22.5668 23.8433 22.6034 24.1467 22.6034 24.46C22.6034 24.76 22.5668 25.0533 22.4934 25.34C22.4268 25.62 22.3168 25.8733 22.1634 26.1C22.0101 26.3267 21.8101 26.51 21.5634 26.65C21.3168 26.7833 21.0168 26.85 20.6634 26.85C20.3101 26.85 20.0101 26.7833 19.7634 26.65C19.5168 26.51 19.3168 26.3267 19.1634 26.1C19.0101 25.8733 18.8968 25.62 18.8234 25.34Z\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM13.1313 20.86H10.0513V28H13.1313C13.678 28 14.1513 27.91 14.5513 27.73C14.958 27.5433 15.2947 27.29 15.5613 26.97C15.8347 26.65 16.038 26.27 16.1713 25.83C16.3047 25.39 16.3713 24.91 16.3713 24.39C16.3713 23.7967 16.288 23.28 16.1213 22.84C15.9613 22.4 15.7347 22.0333 15.4413 21.74C15.1547 21.4467 14.8113 21.2267 14.4113 21.08C14.018 20.9333 13.5913 20.86 13.1313 20.86ZM17.3934 22.98C17.2334 23.4333 17.1534 23.9267 17.1534 24.46C17.1534 24.98 17.2334 25.4667 17.3934 25.92C17.5534 26.3667 17.7834 26.7567 18.0834 27.09C18.3834 27.4233 18.7501 27.6867 19.1834 27.88C19.6234 28.0667 20.1168 28.16 20.6634 28.16C21.2168 28.16 21.7101 28.0667 22.1434 27.88C22.5768 27.6867 22.9434 27.4233 23.2434 27.09C23.5434 26.7567 23.7734 26.3667 23.9334 25.92C24.0934 25.4667 24.1734 24.98 24.1734 24.46C24.1734 23.9267 24.0934 23.4333 23.9334 22.98C23.7734 22.52 23.5434 22.12 23.2434 21.78C22.9434 21.44 22.5768 21.1733 22.1434 20.98C21.7101 20.7867 21.2168 20.69 20.6634 20.69C20.1168 20.69 19.6234 20.7867 19.1834 20.98C18.7501 21.1733 18.3834 21.44 18.0834 21.78C17.7834 22.12 17.5534 22.52 17.3934 22.98ZM29.8266 22.77C29.92 22.9167 29.98 23.08 30.0066 23.26H31.5266C31.48 22.8467 31.3666 22.48 31.1866 22.16C31.0066 21.84 30.7766 21.5733 30.4966 21.36C30.2233 21.14 29.91 20.9733 29.5566 20.86C29.21 20.7467 28.84 20.69 28.4466 20.69C27.9 20.69 27.4066 20.7867 26.9666 20.98C26.5333 21.1733 26.1666 21.44 25.8666 21.78C25.5666 22.12 25.3366 22.52 25.1766 22.98C25.0166 23.4333 24.9366 23.9267 24.9366 24.46C24.9366 24.98 25.0166 25.4667 25.1766 25.92C25.3366 26.3667 25.5666 26.7567 25.8666 27.09C26.1666 27.4233 26.5333 27.6867 26.9666 27.88C27.4066 28.0667 27.9 28.16 28.4466 28.16C28.8866 28.16 29.29 28.0933 29.6566 27.96C30.0233 27.8267 30.3433 27.6333 30.6166 27.38C30.89 27.1267 31.11 26.82 31.2766 26.46C31.4433 26.1 31.5466 25.6967 31.5866 25.25H30.0666C30.0066 25.73 29.84 26.1167 29.5666 26.41C29.3 26.7033 28.9266 26.85 28.4466 26.85C28.0933 26.85 27.7933 26.7833 27.5466 26.65C27.3 26.51 27.1 26.3267 26.9466 26.1C26.7933 25.8733 26.68 25.62 26.6066 25.34C26.54 25.0533 26.5066 24.76 26.5066 24.46C26.5066 24.1467 26.54 23.8433 26.6066 23.55C26.68 23.2567 26.7933 22.9967 26.9466 22.77C27.1 22.5367 27.3 22.3533 27.5466 22.22C27.7933 22.08 28.0933 22.01 28.4466 22.01C28.64 22.01 28.8233 22.0433 28.9966 22.11C29.1766 22.17 29.3366 22.2567 29.4766 22.37C29.6166 22.4833 29.7333 22.6167 29.8266 22.77ZM32.1087 20.86L34.4088 24.26L31.9188 28H33.6787L35.2687 25.53L36.8288 28H38.6987L36.2088 24.27L38.4987 20.86H36.7788L35.3288 23.14L33.9288 20.86H32.1087Z\"\n />\n </>,\n 'docx'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM13.72 24.33H11.89V21.12H13.72C13.99 21.12 14.25 21.14 14.5 21.18C14.75 21.22 14.97 21.3 15.16 21.42C15.35 21.53 15.5 21.69 15.61 21.9C15.73 22.11 15.79 22.385 15.79 22.725C15.79 23.065 15.73 23.34 15.61 23.55C15.5 23.76 15.35 23.925 15.16 24.045C14.97 24.155 14.75 24.23 14.5 24.27C14.25 24.31 13.99 24.33 13.72 24.33ZM14.365 19.29H9.535V30H11.89V26.16H14.365C15.035 26.16 15.605 26.065 16.075 25.875C16.545 25.675 16.925 25.415 17.215 25.095C17.515 24.775 17.73 24.41 17.86 24C18 23.58 18.07 23.155 18.07 22.725C18.07 22.285 18 21.86 17.86 21.45C17.73 21.04 17.515 20.675 17.215 20.355C16.925 20.035 16.545 19.78 16.075 19.59C15.605 19.39 15.035 19.29 14.365 19.29ZM23.9949 28.02H21.8949V21.27H23.5749C24.1549 21.27 24.6399 21.355 25.0299 21.525C25.4299 21.685 25.7499 21.92 25.9899 22.23C26.2299 22.54 26.3999 22.915 26.4999 23.355C26.6099 23.785 26.6649 24.27 26.6649 24.81C26.6649 25.4 26.5899 25.9 26.4399 26.31C26.2899 26.72 26.0899 27.055 25.8399 27.315C25.5899 27.565 25.3049 27.745 24.9849 27.855C24.6649 27.965 24.3349 28.02 23.9949 28.02ZM24.1599 19.29H19.5399V30H24.1599C24.9799 30 25.6899 29.865 26.2899 29.595C26.8999 29.315 27.4049 28.935 27.8049 28.455C28.2149 27.975 28.5199 27.405 28.7199 26.745C28.9199 26.085 29.0199 25.365 29.0199 24.585C29.0199 23.695 28.8949 22.92 28.6449 22.26C28.4049 21.6 28.0649 21.05 27.6249 20.61C27.1949 20.17 26.6799 19.84 26.0799 19.62C25.4899 19.4 24.8499 19.29 24.1599 19.29ZM38.188 19.29H30.658V30H33.013V25.575H37.498V23.745H33.013V21.27H38.188V19.29Z\"\n />,\n 'pdf'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM19.0314 30.2895C19.5414 30.0695 20.0064 29.6895 20.4264 29.1495L20.6664 30.3645H22.1664V24.5745H17.6664V26.3295H20.0364C19.9664 27.0795 19.7164 27.6545 19.2864 28.0545C18.8664 28.4445 18.2664 28.6395 17.4864 28.6395C16.9564 28.6395 16.5064 28.5395 16.1364 28.3395C15.7664 28.1295 15.4664 27.8545 15.2364 27.5145C15.0064 27.1745 14.8364 26.7945 14.7264 26.3745C14.6264 25.9445 14.5764 25.5045 14.5764 25.0545C14.5764 24.5845 14.6264 24.1295 14.7264 23.6895C14.8364 23.2495 15.0064 22.8595 15.2364 22.5195C15.4664 22.1695 15.7664 21.8945 16.1364 21.6945C16.5064 21.4845 16.9564 21.3795 17.4864 21.3795C18.0564 21.3795 18.5414 21.5295 18.9414 21.8295C19.3414 22.1295 19.6114 22.5795 19.7514 23.1795H22.0014C21.9414 22.5695 21.7764 22.0295 21.5064 21.5595C21.2364 21.0895 20.8914 20.6945 20.4714 20.3745C20.0614 20.0545 19.5964 19.8145 19.0764 19.6545C18.5664 19.4845 18.0364 19.3995 17.4864 19.3995C16.6664 19.3995 15.9264 19.5445 15.2664 19.8345C14.6164 20.1245 14.0664 20.5245 13.6164 21.0345C13.1664 21.5445 12.8214 22.1445 12.5814 22.8345C12.3414 23.5145 12.2214 24.2545 12.2214 25.0545C12.2214 25.8345 12.3414 26.5645 12.5814 27.2445C12.8214 27.9145 13.1664 28.4995 13.6164 28.9995C14.0664 29.4995 14.6164 29.8945 15.2664 30.1845C15.9264 30.4645 16.6664 30.6045 17.4864 30.6045C18.0064 30.6045 18.5214 30.4995 19.0314 30.2895ZM26.4232 19.6545H24.0682V30.3645H26.4232V19.6545ZM36.022 19.6545H28.492V30.3645H30.847V25.9395H35.332V24.1095H30.847V21.6345H36.022V19.6545Z\"\n />,\n 'gif'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M40 12H24L20 8H8C5.8 8 4 9.8 4 12V36C4 38.2 5.8 40 8 40H40C42.2 40 44 38.2 44 36V16C44 13.8 42.2 12 40 12ZM36 24H32V28H36V32H32V36H28V32H32V28H28V24H32V20H28V16H32V20H36V24Z\" />,\n 'zip'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M25.0442 28.3845H22.9442V21.6345H24.6242C25.2042 21.6345 25.6892 21.7195 26.0792 21.8895C26.4792 22.0495 26.7992 22.2845 27.0392 22.5945C27.2792 22.9045 27.4492 23.2795 27.5492 23.7195C27.6592 24.1495 27.7142 24.6345 27.7142 25.1745C27.7142 25.7645 27.6392 26.2645 27.4892 26.6745C27.3392 27.0845 27.1392 27.4195 26.8892 27.6795C26.6392 27.9295 26.3542 28.1095 26.0342 28.2195C25.7142 28.3295 25.3842 28.3845 25.0442 28.3845Z\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM11.826 19.6545H9.47104V30.3645H11.826V25.7445H16.161V30.3645H18.516V19.6545H16.161V23.7645H11.826V19.6545ZM25.2092 19.6545H20.5892V30.3645H25.2092C26.0292 30.3645 26.7392 30.2295 27.3392 29.9595C27.9492 29.6795 28.4542 29.2995 28.8542 28.8195C29.2642 28.3395 29.5692 27.7695 29.7692 27.1095C29.9692 26.4495 30.0692 25.7295 30.0692 24.9495C30.0692 24.0595 29.9442 23.2845 29.6942 22.6245C29.4542 21.9645 29.1142 21.4145 28.6742 20.9745C28.2442 20.5345 27.7292 20.2045 27.1292 19.9845C26.5392 19.7645 25.8992 19.6545 25.2092 19.6545ZM39.2374 19.6545H31.7074V30.3645H34.0624V25.9395H38.5474V24.1095H34.0624V21.6345H39.2374V19.6545Z\"\n />\n </>,\n 'hdf'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M24 37.356L33.24 34.844L34.486 21.288H18.052L17.644 16.78H34.896L35.35 12.358H12.65L13.922 25.714H29.562L29.04 31.446L24 32.78L18.96 31.446L18.644 27.758H14.104L14.762 34.846L24 37.356ZM6 5H42L38.754 41L24 45L9.246 41L6 5Z\" />,\n 'html'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M40.001 38C40.001 39.1 39.101 40 38.001 40H10.001C8.88096 40 8.00096 39.1 8.00096 38V10C8.00096 8.88 8.88096 8 10.001 8H38.001C39.101 8 40.001 8.88 40.001 10V38ZM44.001 10C44.001 6.68 41.301 4 38.001 4H10.001C6.68096 3.998 4.00096 6.68 4.00096 10L3.99896 38C3.99896 41.3 6.67896 44 9.99896 44H37.999C41.299 44 43.999 41.3 43.999 38L44.001 10Z\" />\n <path d=\"M18.001 17C18.001 17.54 17.541 18 17.001 18C16.441 18 16.001 17.54 16.001 17C16.001 16.44 16.441 16 17.001 16C17.541 16 18.001 16.44 18.001 17ZM22.001 17C22.001 14.22 19.761 12 17.001 12C14.221 12 12.001 14.22 12.001 17C12.001 19.76 14.221 22 17.001 22C19.761 22 22.001 19.76 22.001 17Z\" />\n <path d=\"M43.401 28.58L33.401 18.58C32.601 17.78 31.341 17.78 30.561 18.58L8.56097 40.58C7.76097 41.36 7.76097 42.62 8.56097 43.4C9.34097 44.18 10.601 44.18 11.381 43.4L33.381 21.4H30.541L40.541 31.4C41.321 32.18 42.581 32.18 43.361 31.4C44.141 30.6 44.141 29.34 43.361 28.56L43.401 28.58Z\" />\n </>,\n 'jpeg'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M12.3333 9H15.6667V12.3333H12.3333V20.6667C12.3333 21.5507 11.9821 22.3986 11.357 23.0237C10.7319 23.6488 9.88405 24 9 24C9.88405 24 10.7319 24.3512 11.357 24.9763C11.9821 25.6014 12.3333 26.4493 12.3333 27.3333V35.6667H15.6667V39H12.3333C10.55 38.55 9 37.5 9 35.6667V29C9 28.1159 8.64881 27.2681 8.02369 26.643C7.39857 26.0179 6.55072 25.6667 5.66667 25.6667H4V22.3333H5.66667C6.55072 22.3333 7.39857 21.9821 8.02369 21.357C8.64881 20.7319 9 19.8841 9 19V12.3333C9 11.4493 9.35119 10.6014 9.97631 9.97631C10.6014 9.35119 11.4493 9 12.3333 9ZM35.6667 9C36.5507 9 37.3986 9.35119 38.0237 9.97631C38.6488 10.6014 39 11.4493 39 12.3333V19C39 19.8841 39.3512 20.7319 39.9763 21.357C40.6014 21.9821 41.4493 22.3333 42.3333 22.3333H44V25.6667H42.3333C41.4493 25.6667 40.6014 26.0179 39.9763 26.643C39.3512 27.2681 39 28.1159 39 29V35.6667C39 36.5507 38.6488 37.3986 38.0237 38.0237C37.3986 38.6488 36.5507 39 35.6667 39H32.3333V35.6667H35.6667V27.3333C35.6667 26.4493 36.0179 25.6014 36.643 24.9763C37.2681 24.3512 38.1159 24 39 24C38.1159 24 37.2681 23.6488 36.643 23.0237C36.0179 22.3986 35.6667 21.5507 35.6667 20.6667V12.3333H32.3333V9H35.6667ZM24 29C24.442 29 24.8659 29.1756 25.1785 29.4882C25.4911 29.8007 25.6667 30.2246 25.6667 30.6667C25.6667 31.1087 25.4911 31.5326 25.1785 31.8452C24.8659 32.1577 24.442 32.3333 24 32.3333C23.558 32.3333 23.134 32.1577 22.8215 31.8452C22.5089 31.5326 22.3333 31.1087 22.3333 30.6667C22.3333 30.2246 22.5089 29.8007 22.8215 29.4882C23.134 29.1756 23.558 29 24 29ZM17.3333 29C17.7754 29 18.1993 29.1756 18.5118 29.4882C18.8244 29.8007 19 30.2246 19 30.6667C19 31.1087 18.8244 31.5326 18.5118 31.8452C18.1993 32.1577 17.7754 32.3333 17.3333 32.3333C16.8913 32.3333 16.4674 32.1577 16.1548 31.8452C15.8423 31.5326 15.6667 31.1087 15.6667 30.6667C15.6667 30.2246 15.8423 29.8007 16.1548 29.4882C16.4674 29.1756 16.8913 29 17.3333 29ZM30.6667 29C31.1087 29 31.5326 29.1756 31.8452 29.4882C32.1577 29.8007 32.3333 30.2246 32.3333 30.6667C32.3333 31.1087 32.1577 31.5326 31.8452 31.8452C31.5326 32.1577 31.1087 32.3333 30.6667 32.3333C30.2246 32.3333 29.8007 32.1577 29.4882 31.8452C29.1756 31.5326 29 31.1087 29 30.6667C29 30.2246 29.1756 29.8007 29.4882 29.4882C29.8007 29.1756 30.2246 29 30.6667 29Z\" />,\n 'json'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M26.8543 24.6945H25.0243V21.4845H26.8543C27.1243 21.4845 27.3843 21.5045 27.6343 21.5445C27.8843 21.5845 28.1043 21.6645 28.2943 21.7845C28.4843 21.8945 28.6343 22.0545 28.7443 22.2645C28.8643 22.4745 28.9243 22.7495 28.9243 23.0895C28.9243 23.4295 28.8643 23.7045 28.7443 23.9145C28.6343 24.1245 28.4843 24.2895 28.2943 24.4095C28.1043 24.5195 27.8843 24.5945 27.6343 24.6345C27.3843 24.6745 27.1243 24.6945 26.8543 24.6945Z\" />\n <path d=\"M36.2742 22.5345H36.3192V26.1795H33.5592L36.2742 22.5345Z\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM12.3759 19.6545H9.06088V30.3645H11.2659V22.8495H11.2959L13.9209 30.3645H15.7359L18.3609 22.7745H18.3909V30.3645H20.5959V19.6545H17.2809L14.9109 27.0195H14.8809L12.3759 19.6545ZM27.4993 19.6545H22.6693V30.3645H25.0243V26.5245H27.4993C28.1693 26.5245 28.7393 26.4295 29.2093 26.2395C29.6793 26.0395 30.0593 25.7795 30.3493 25.4595C30.6493 25.1395 30.8643 24.7745 30.9943 24.3645C31.1343 23.9445 31.2043 23.5195 31.2043 23.0895C31.2043 22.6495 31.1343 22.2245 30.9943 21.8145C30.8643 21.4045 30.6493 21.0395 30.3493 20.7195C30.0593 20.3995 29.6793 20.1445 29.2093 19.9545C28.7393 19.7545 28.1693 19.6545 27.4993 19.6545ZM31.8792 27.9345H36.3192V30.3645H38.3442V27.9345H39.7392V26.1795H38.3442V19.8645H36.4392L31.8792 25.9845V27.9345Z\"\n />\n </>,\n 'mp4'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M44 39H39V44H44V39Z\" />\n <path d=\"M39 34H34V39H39V34Z\" />\n <path d=\"M44 29H39V34H44V29Z\" />\n <path d=\"M39 24H34V29H39V24Z\" />\n <path d=\"M44 19H39V24H44V19Z\" />\n <path d=\"M39 14H34V19H39V14Z\" />\n <path d=\"M44 9H39V14H44V9Z\" />\n <path d=\"M39 4H34V9H39V4Z\" />\n <path d=\"M34 9H29V14H34V9Z\" />\n <path d=\"M29 4H24V9H29V4Z\" />\n <path d=\"M24 9H19V14H24V9Z\" />\n <path d=\"M19 4H14V9H19V4Z\" />\n <path d=\"M14 9H9V14H14V9Z\" />\n <path d=\"M9 4H4V9H9V4Z\" />\n <path d=\"M9 14H4V19H9V14Z\" />\n <path d=\"M14 19H9V24H14V19Z\" />\n <path d=\"M9 24H4V29H9V24Z\" />\n <path d=\"M14 29H9V34H14V29Z\" />\n <path d=\"M9 34H4V39H9V34Z\" />\n <path d=\"M14 39H9V44H14V39Z\" />\n <path d=\"M19 34H14V39H19V34Z\" />\n <path d=\"M24 39H19V44H24V39Z\" />\n <path d=\"M29 34H24V39H29V34Z\" />\n <path d=\"M34 39H29V44H34V39Z\" />\n <path d=\"M24 29H19V34H24V29Z\" />\n <path d=\"M19 24H14V29H19V24Z\" />\n <path d=\"M24 19H19V24H24V19Z\" />\n <path d=\"M19 14H14V19H19V14Z\" />\n <path d=\"M29 14H24V19H29V14Z\" />\n <path d=\"M29 24H24V29H29V24Z\" />\n <path d=\"M34 29H29V34H34V29Z\" />\n <path d=\"M34 19H29V24H34V19Z\" />\n </>,\n 'png'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M23.8596 26.2245H21.0846L22.4796 22.2945H22.5096L23.8596 26.2245Z\" />\n <path d=\"M33.5882 24.4995H31.0082V21.4845H33.5882C34.1282 21.4845 34.5332 21.6045 34.8032 21.8445C35.0732 22.0745 35.2082 22.4495 35.2082 22.9695C35.2082 23.5095 35.0732 23.8995 34.8032 24.1395C34.5332 24.3795 34.1282 24.4995 33.5882 24.4995Z\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM9.75164 21.6345H12.9616V30.3645H15.3166V21.6345H18.5266V19.6545H9.75164V21.6345ZM23.7246 19.6545H21.3096L17.2596 30.3645H19.6296L20.4696 27.9795H24.4746L25.2846 30.3645H27.7296L23.7246 19.6545ZM34.4282 19.6545H28.6532V30.3645H31.0082V26.1795H33.3632C33.9532 26.1795 34.3782 26.3095 34.6382 26.5695C34.8982 26.8295 35.0682 27.2395 35.1482 27.7995C35.2082 28.2295 35.2532 28.6795 35.2832 29.1495C35.3132 29.6195 35.3932 30.0245 35.5232 30.3645H37.8782C37.7682 30.2145 37.6832 30.0345 37.6232 29.8245C37.5732 29.6045 37.5332 29.3745 37.5032 29.1345C37.4832 28.8945 37.4682 28.6595 37.4582 28.4295C37.4482 28.1995 37.4382 27.9995 37.4282 27.8295C37.4082 27.5595 37.3682 27.2895 37.3082 27.0195C37.2582 26.7495 37.1732 26.5045 37.0532 26.2845C36.9332 26.0545 36.7782 25.8595 36.5882 25.6995C36.3982 25.5295 36.1582 25.4045 35.8682 25.3245V25.2945C36.4682 25.0545 36.8982 24.7045 37.1582 24.2445C37.4282 23.7845 37.5632 23.2395 37.5632 22.6095C37.5632 22.1995 37.4882 21.8195 37.3382 21.4695C37.1982 21.1095 36.9882 20.7945 36.7082 20.5245C36.4382 20.2545 36.1082 20.0445 35.7182 19.8945C35.3382 19.7345 34.9082 19.6545 34.4282 19.6545Z\"\n />\n </>,\n 'tar'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M8 12.6138L16.6138 4H21.3875L8 17.3875V12.6138Z\" />\n <path d=\"M12.7226 27.5162H17.4963L37.0314 7.98247L34.6439 5.59622L12.7226 27.5162Z\" />\n <path d=\"M39.25 10.2024L37.915 8.86618L19.2637 27.5162H24.0387L39.25 12.3049V10.2024Z\" />\n <path d=\"M32.3488 27.5162L39.25 20.615V27.5162H32.3488Z\" />\n <path d=\"M39.2502 14.0725L25.8064 27.5162H30.5802L39.2502 18.8475V14.0725Z\" />\n <path d=\"M33.76 4.7125L33.0475 4H29.6975L8 25.6975V27.5163H10.955L33.76 4.7125Z\" />\n <path d=\"M8 10.8463V4H14.8463L8 10.8463Z\" />\n <path d=\"M23.1563 4L8 19.155V23.93L27.93 4H23.1563Z\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8 28.7662H39.25V44H8V28.7662ZM17.7038 34.37H19.5575V33.31H14.5813V34.37H16.4388V39.5737H17.7038V34.37ZM20.335 39.5737H21.6V33.31H20.335V39.5737ZM24.0775 34.37H27.1075V33.3112H22.8125V39.575H24.0775V36.9137H26.6925V35.8537H24.0775V34.37ZM29.4225 34.37H32.4525V33.3112H28.1588V39.575H29.4225V36.9137H32.0375V35.8537H29.4225V34.37Z\"\n />\n </>,\n 'tiff'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM9.52264 21.6345H12.7326V30.3645H15.0876V21.6345H18.2976V19.6545H9.52264V21.6345ZM18.7076 19.6545L22.1576 24.7545L18.4226 30.3645H21.0626L23.4476 26.6595L25.7876 30.3645H28.5926L24.8576 24.7695L28.2926 19.6545H25.7126L23.5376 23.0745L21.4376 19.6545H18.7076ZM28.6974 21.6345H31.9074V30.3645H34.2624V21.6345H37.4724V19.6545H28.6974V21.6345Z\"\n />,\n 'txt'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M7.09538 7.00154H14.5686C15.6449 7.00154 16.6444 7.55538 17.198 8.49385L20.9146 14.6923H4V10.0769C4 8.37692 5.37623 7 7.07539 7L7.09538 7.00154Z\" />\n <path d=\"M40.9246 10.0784H4.02V37.7707C4.02 39.463 5.39624 40.8477 7.09539 40.8477H10.1708V40.0784C10.1708 38.8015 11.201 37.7707 12.4773 37.7707C13.7382 37.7707 14.7838 38.8015 14.7838 40.0784V40.8477H33.2362V40.0784C33.2362 38.8015 34.2664 37.7707 35.5427 37.7707C36.8036 37.7707 37.8492 38.8015 37.8492 40.0784V40.8477H40.9246C42.6161 40.8477 44 39.463 44 37.7707V13.1553C44 11.4477 42.6161 10.0784 40.9246 10.0784ZM10.1708 31.6169C11.0165 28.2984 13.8151 29.2153 14.3994 27.34V25.94C14.1073 25.7861 13.2769 24.7092 13.2 23.8784C12.9694 23.8477 12.6157 23.6323 12.5081 22.74C12.4466 22.2477 12.6618 21.9861 12.8002 21.8938C12.8002 21.8938 12.4619 21.1092 12.4619 20.3553C12.4466 18.0784 13.5844 16.1892 16.2908 16.1892C17.7516 16.1892 18.2129 17.22 18.2129 17.22C19.5199 17.22 20.135 18.6507 20.135 20.343C20.135 21.1738 19.7967 21.8815 19.7967 21.8815C19.9197 21.9584 20.1504 22.2353 20.0889 22.7123C19.9812 23.5892 19.6276 23.82 19.3969 23.8353C19.3047 24.6661 18.4743 25.7277 18.1975 25.8815V27.2661C18.7665 29.1277 21.5805 28.22 22.4262 31.5277H10.1093L10.1708 31.6169ZM36.3115 30.0784H27.0854C26.2243 30.0784 25.5477 29.3861 25.5477 28.54C25.5477 27.6784 26.2243 27.0015 27.0854 27.0015H36.3115C37.1573 27.0015 37.8492 27.6784 37.8492 28.54C37.8492 29.3861 37.1573 30.0784 36.3115 30.0784ZM36.3115 23.9246H27.0854C26.2243 23.9246 25.5477 23.2323 25.5477 22.3861C25.5477 21.5246 26.2243 20.8477 27.0854 20.8477H36.3115C37.1573 20.8477 37.8492 21.5246 37.8492 22.3861C37.8492 23.2323 37.1573 23.9246 36.3115 23.9246Z\" />\n </>,\n 'vcard'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M5.57621 26.7398H10.2974C10.57 26.7398 10.8154 26.6753 11.0335 26.5465C11.2515 26.4176 11.4077 26.2243 11.5019 25.9665L12.3941 22.8513H11.4349L13.8736 34.368C13.9331 34.6654 14.0768 34.891 14.3048 35.0446C14.5279 35.1983 14.7732 35.2751 15.0409 35.2751C15.3086 35.2751 15.5489 35.1958 15.7621 35.0372C15.9703 34.8786 16.1016 34.6456 16.1561 34.3383L17.8959 22.8959L20 41.3866C20.0397 41.7237 20.1735 41.9839 20.4015 42.1673C20.6295 42.3457 20.8872 42.4349 21.1747 42.4349C21.4622 42.4349 21.7175 42.3432 21.9405 42.1599C22.1636 41.9765 22.285 41.7138 22.3048 41.3717L24.2007 19.803L26.1115 41.3494C26.1413 41.6964 26.2677 41.9616 26.4907 42.145C26.7138 42.3234 26.969 42.4126 27.2565 42.4126C27.544 42.4126 27.7993 42.3209 28.0223 42.1375C28.2454 41.9542 28.3767 41.6865 28.4164 41.3346L30.5353 22.8513L32.2602 34.3011C32.3098 34.6084 32.4436 34.8364 32.6617 34.9851C32.8798 35.1338 33.1202 35.2082 33.3829 35.2082C33.6456 35.2082 33.891 35.1313 34.119 34.9777C34.347 34.824 34.4858 34.5936 34.5353 34.2862L36.974 22.829L36.0743 22.8439L36.8996 25.7286C37.0136 26.0458 37.1871 26.2763 37.4201 26.4201C37.653 26.5638 37.9182 26.6357 38.2156 26.6357H42.7138C43.0756 26.6357 43.3804 26.5093 43.6283 26.2565C43.8761 26.0037 44 25.7014 44 25.3494C44 24.9826 43.8736 24.6729 43.6208 24.4201C43.368 24.1623 43.0607 24.0335 42.6989 24.0335H38.8327L37.5688 19.1264C37.4895 18.8141 37.3408 18.5787 37.1227 18.4201C36.8996 18.2565 36.6592 18.1747 36.4015 18.1747C36.1388 18.1747 35.9009 18.254 35.6877 18.4126C35.4746 18.5712 35.3358 18.8042 35.2714 19.1115L33.5242 27.4461L31.4126 13.6543C31.368 13.3123 31.2317 13.052 31.0037 12.8736C30.7708 12.6952 30.5155 12.6059 30.2379 12.6059C29.9603 12.6059 29.71 12.6927 29.487 12.8662C29.259 13.0396 29.1252 13.3024 29.0855 13.6543L27.2937 29.3197L25.2491 6.07806C25.2243 5.71127 25.0954 5.44113 24.8625 5.26765C24.6245 5.08921 24.3618 5 24.0744 5C23.7819 5 23.5192 5.08674 23.2862 5.26022C23.0483 5.4337 22.9145 5.70136 22.8848 6.0632L20.8401 29.2974L19.0483 13.6245C19.0136 13.2726 18.8848 13.005 18.6617 12.8216C18.4337 12.6382 18.1834 12.5465 17.9108 12.5465C17.6332 12.5465 17.3779 12.6357 17.145 12.8141C16.912 12.9926 16.7708 13.2528 16.7212 13.5948L14.6245 27.3792L12.8773 19.0372C12.798 18.7348 12.6518 18.5118 12.4387 18.368C12.2255 18.2193 11.9901 18.145 11.7323 18.145C11.4746 18.145 11.2342 18.2168 11.0112 18.3606C10.7831 18.5043 10.632 18.7249 10.5576 19.0223L9.29368 23.9219H5.31599C4.93928 23.9219 4.62701 24.0483 4.37918 24.3011C4.12639 24.5539 4 24.8612 4 25.223C4 25.57 4.12392 25.8699 4.37175 26.1227C4.61958 26.3705 4.92937 26.4944 5.30112 26.4944L5.57621 26.7398Z\" />,\n 'wav'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4C6.68629 4 4 6.68629 4 10V38C4 41.3137 6.68629 44 10 44H38C41.3137 44 44 41.3137 44 38V10C44 6.68629 41.3137 4 38 4H10ZM7.95756 19.6545L11.4076 24.7545L7.67256 30.3645H10.3126L12.6976 26.6595L15.0376 30.3645H17.8426L14.1076 24.7695L17.5426 19.6545H14.9626L12.7876 23.0745L10.6876 19.6545H7.95756ZM22.1024 19.6545H18.7874V30.3645H20.9924V22.8495H21.0224L23.6474 30.3645H25.4624L28.0874 22.7745H28.1174V30.3645H30.3224V19.6545H27.0074L24.6374 27.0195H24.6074L22.1024 19.6545ZM34.7508 19.6545H32.3958V30.3645H39.9708V28.3845H34.7508V19.6545Z\"\n />,\n 'xml'\n);\n","import { AssetType } from 'api-client';\nimport classNames from 'classnames';\nimport IconArray from 'components/Svg/icons/IconArray';\nimport React from 'react';\nimport styles from './AssetTypeIcon.module.scss';\nimport IconBiomedicalImaging from 'components/Svg/icons/IconBiomedicalImaging';\nimport IconDashboard from 'components/Svg/icons/IconDashboard';\nimport IconFile from 'components/Svg/icons/IconFile';\nimport IconGeometry from 'components/Svg/icons/IconGeometry';\nimport IconGroup from 'components/Svg/icons/IconGroup';\nimport IconMLModel from 'components/Svg/icons/IconMLModel';\nimport IconNotebook from 'components/Svg/icons/IconNotebook';\nimport IconPointCloud from 'components/Svg/icons/IconPointCloud';\nimport IconRaster from 'components/Svg/icons/IconRaster';\nimport IconTaskGraph from 'components/Svg/icons/IconTaskGraph';\nimport IconSOMA from 'components/Svg/icons/IconSOMA';\nimport IconUDF from 'components/Svg/icons/IconUDF';\nimport IconVCF from 'components/Svg/icons/IconVCF';\nimport IconVectorSearch from 'components/Svg/icons/IconVectorSearch';\nimport MimeType from 'utils/constants/MimeType';\nimport IconCSV from 'components/Svg/icons/IconCSV';\nimport IconDOCX from 'components/Svg/icons/IconDOCX';\nimport IconPDF from 'components/Svg/icons/IconPDF';\nimport IconGIF from 'components/Svg/icons/IconGIF';\nimport IconZIP from 'components/Svg/icons/IconZIP';\nimport IconHDF from 'components/Svg/icons/IconHDF';\nimport IconHTML from 'components/Svg/icons/IconHTML';\nimport IconJPEG from 'components/Svg/icons/IconJPEG';\nimport IconJSON from 'components/Svg/icons/IconJSON';\nimport IconMP4 from 'components/Svg/icons/IconMP4';\nimport IconPNG from 'components/Svg/icons/IconPNG';\nimport IconTAR from 'components/Svg/icons/IconTAR';\nimport IconTIFF from 'components/Svg/icons/IconTIFF';\nimport IconTXT from 'components/Svg/icons/IconTXT';\nimport IconVCard from 'components/Svg/icons/IconVCard';\nimport IconWAV from 'components/Svg/icons/IconWAV';\nimport IconXML from 'components/Svg/icons/IconXML';\n\ninterface AssetTypeIconProps {\n assetType: AssetType;\n mimeType?: string;\n active?: boolean;\n fill?: string;\n className?: string;\n size?: string | number;\n}\n\nconst assetTypeIcon = {\n [AssetType.Array]: IconArray,\n [AssetType.Bioimg]: IconBiomedicalImaging,\n [AssetType.Dashboard]: IconDashboard,\n [AssetType.File]: IconFile,\n [AssetType.Geometry]: IconGeometry,\n [AssetType.Group]: IconGroup,\n [AssetType.MlModel]: IconMLModel,\n [AssetType.Notebook]: IconNotebook,\n [AssetType.Pointcloud]: IconPointCloud,\n [AssetType.Raster]: IconRaster,\n [AssetType.RegisteredTaskGraph]: IconTaskGraph,\n [AssetType.Soma]: IconSOMA,\n [AssetType.UserDefinedFunction]: IconUDF,\n [AssetType.Vcf]: IconVCF,\n [AssetType.VectorSearch]: IconVectorSearch,\n};\n\nconst mimeTypeIcon = {\n [MimeType.Array]: IconArray,\n [MimeType.Bioimg]: IconBiomedicalImaging,\n [MimeType.CSV]: IconCSV,\n [MimeType.DOCX]: IconDOCX,\n [MimeType.GIF]: IconGIF,\n [MimeType.GZIP]: IconZIP,\n [MimeType.ZIP]: IconZIP,\n [MimeType.Geometry]: IconGeometry,\n [MimeType.Group]: IconGroup,\n [MimeType.HDF]: IconHDF,\n [MimeType.HTML]: IconHTML,\n [MimeType.JPEG]: IconJPEG,\n [MimeType.JSON]: IconJSON,\n [MimeType.MLModel]: IconMLModel,\n [MimeType.MP4]: IconMP4,\n [MimeType.Notebook]: IconNotebook,\n [MimeType.OctetStream]: IconFile,\n [MimeType.PDF]: IconPDF,\n [MimeType.PNG]: IconPNG,\n [MimeType.Pointcloud]: IconPointCloud,\n [MimeType.Raster]: IconRaster,\n [MimeType.RegisterdTaskGraph]: IconTaskGraph,\n [MimeType.SOMA]: IconSOMA,\n [MimeType.TAR]: IconTAR,\n [MimeType.TIFF]: IconTIFF,\n [MimeType.TXT]: IconTXT,\n [MimeType.UDF]: IconUDF,\n [MimeType.VCARD]: IconVCard,\n [MimeType.Vcf]: IconVCF,\n [MimeType.VectorSearch]: IconVectorSearch,\n [MimeType.WAV]: IconWAV,\n [MimeType.XML]: IconXML,\n};\n\n/**\n * Replaces / and . with - from the mime-type string to be used as CSS classes\n */\nfunction sluggifyMimeType(mimeType: string): string {\n return mimeType?.replace(/(\\/|\\.)/g, '-') || '';\n}\n\n/**\n * Renders the asset icon by reading the mime_type or the asset_type\n * mime_type has priority. If the mime-type is falsy or not supported, it will use the asset_type indicator\n */\nconst AssetTypeIcon: React.FC<AssetTypeIconProps> = (props) => {\n const { assetType, active, fill, className, size, mimeType } = props;\n // Get the icon by AssetType\n // This will be used as the fallback icon if there is no mime-type\n let IconComponent = assetTypeIcon[assetType];\n\n // If a mime-type is passed, try to find the icon by mime-type\n if (mimeType) {\n const MimeTypeIconComponent = mimeTypeIcon[mimeType as never];\n // If an icon found for this mime-type, use this icon instead\n if (MimeTypeIconComponent) {\n IconComponent = MimeTypeIconComponent;\n }\n }\n\n if (!IconComponent) {\n return null;\n }\n\n return (\n <IconComponent\n size={size}\n className={classNames(className, styles[`icon--${assetType}`], {\n [styles.active]: active,\n [styles[`icon--mime-type--${sluggifyMimeType(mimeType as string)}`]]:\n !!mimeType,\n })}\n fill={fill}\n />\n );\n};\n\nexport default AssetTypeIcon;\n","import AssetTypeIcon from './AssetTypeIcon';\n\nexport default AssetTypeIcon;\n","import React, { useMemo } from 'react';\nimport { useUserContext } from 'store/UserContext';\nimport history from 'utils/helpers/history';\nimport { authLinks } from 'utils/links';\n\nexport const AuthGuard: React.FC<any> = (props) => {\n const { children } = props;\n const { isLoggedIn } = useUserContext();\n\n const comp = useMemo(() => {\n if (!isLoggedIn) {\n history.replace(authLinks.login());\n return null;\n }\n\n return children;\n }, [isLoggedIn, children]);\n\n return comp;\n};\n\nexport default AuthGuard;\n","import AuthGuard from './AuthGuard';\n\nexport default AuthGuard;\nexport * from './AuthGuard';\n","import React, { useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport Typography, { SizeVariants } from 'components/Typography';\nimport './Avatar.scss';\n\nexport const SIZES = ['xs', 'small', 'medium', 'large', 'xl'] as const;\n\nexport type AvatarSizes = (typeof SIZES)[number];\n\nexport interface AvatarProps {\n logo?: string;\n size: AvatarSizes;\n rounded?: boolean;\n namespace: string;\n className?: string;\n ariaLabel?: string;\n dataTestId?: string;\n}\n\nfunction getFirstLetter(namespace: string): string {\n const firstLetter = namespace ? namespace[0] : '-';\n return firstLetter.toUpperCase();\n}\n\nexport const Avatar: React.FC<AvatarProps> = (props) => {\n const {\n logo,\n rounded,\n size,\n namespace,\n className,\n ariaLabel,\n dataTestId = 'TDB-Avatar',\n } = props;\n const [imgError, setImgError] = useState(false);\n const typographySize: SizeVariants = useMemo(() => {\n if (size === 'xs') {\n return 'body-sm';\n } else if (size === 'small') {\n return 'body-md';\n } else if (size === 'medium') {\n return 'heading-xs';\n } else if (size === 'large') {\n return 'body-xl';\n }\n return 'body-xl';\n }, [size]);\n\n return (\n <div\n className={classNames('TDB-Avatar', className, `TDB-Avatar--${size}`, {\n 'TDB-Avatar--no-logo': !logo,\n 'TDB-Avatar--rounded': rounded,\n })}\n data-testid={dataTestId}\n aria-label={ariaLabel}\n >\n {!logo && imgError ? (\n <Typography\n className=\"TDB-Avatar__Placeholder\"\n data-testid=\"TDB-Avatar__Placeholder\"\n fontSize={typographySize}\n fontWeight=\"700\"\n >\n {getFirstLetter(namespace)}\n </Typography>\n ) : (\n <img\n alt={`${namespace}'s logo`}\n // logo may come from the API in JSON as base64 string\n // If the logo is truthy we should render it as-is\n // If the logo is falsy we should try to fetch the logo\n // from the internal end point which may return the image in png format\n src={logo || `/v1/api/logo/namespace/${namespace}`}\n data-testid=\"TDB-Avatar__img\"\n onError={() => setImgError(true)}\n />\n )}\n </div>\n );\n};\n\nexport default Avatar;\n","import Avatar from './Avatar';\n\nexport default Avatar;\nexport * from './Avatar';\n","import * as React from 'react';\n\ntype Child = React.ReactNode | React.ComponentClass | React.FunctionComponent;\n\ninterface Props<T extends Child> {\n children: T;\n condition: boolean;\n left: (props: T) => any;\n right?: (props: T) => any;\n}\n\nfunction ConditionalWrapper<T extends Child>(props: Props<T>): JSX.Element {\n const { children, condition, left, right } = props;\n\n return <>{condition ? left(children) : right && right(children)}</>;\n}\n\nexport default ConditionalWrapper;\n","import ConditionalWrapper from './ConditionalWrapper';\n\nexport default ConditionalWrapper;\n","import React, { useRef, useState } from 'react';\nimport './Dialog.scss';\nimport { usePopper } from 'react-popper';\nimport useOnClickOutside from 'hooks/useOnClickOutside';\nimport { PositioningStrategy } from '@popperjs/core';\nimport classNames from 'classnames';\n\ntype Placements =\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top'\n | 'bottom'\n | 'right'\n | 'left'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\n\ninterface PoppperProps extends React.PropsWithChildren {\n content: React.ReactNode;\n strategy?: PositioningStrategy;\n trigger?: 'hover' | 'click' | 'manual';\n variant?: 'transparent';\n placement?: Placements;\n className?: string;\n dataCy?: string;\n handleCloseDialog?: () => void;\n visible?: boolean;\n interactive?: boolean;\n dataTestID?: string;\n preventOverflow?: boolean;\n preventCloseForClassName?: string;\n}\n\nconst Dialog: React.FC<PoppperProps> = ({\n content,\n children,\n interactive,\n variant,\n placement = 'auto',\n trigger = 'hover',\n className,\n strategy,\n handleCloseDialog,\n visible,\n dataCy,\n preventCloseForClassName,\n dataTestID,\n preventOverflow = false,\n}) => {\n const [referenceElement, setReferenceElement] = useState<\n HTMLElement | null | undefined\n >(null);\n const [popperElement, setPopperElement] = useState<\n HTMLElement | null | undefined\n >(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n placement: placement,\n strategy,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 6],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n mainAxis: preventOverflow,\n },\n },\n ],\n });\n const tooltipRef = useRef<HTMLDivElement>(null);\n const manualMode = trigger === 'manual';\n const hoverMode = trigger === 'hover';\n const clickMode = trigger === 'click';\n const [showDialog, toggleDialog] = useState(false);\n\n useOnClickOutside(\n tooltipRef,\n () => {\n if ((visible && manualMode) || clickMode) {\n handleCloseDialog?.();\n toggleDialog(() => false);\n }\n },\n { ignoreClass: preventCloseForClassName }\n );\n\n if (!content) {\n return <>{children}</>;\n }\n\n return (\n <div\n data-testid={dataTestID}\n data-cy={dataCy}\n className={classNames('TDB-Dialog__Wrapper', className)}\n ref={tooltipRef}\n onMouseEnter={(): any =>\n hoverMode && interactive && toggleDialog(() => true)\n }\n onMouseLeave={(): any =>\n hoverMode && interactive && toggleDialog(() => false)\n }\n >\n <div\n ref={setReferenceElement}\n onClick={(): any =>\n clickMode && toggleDialog((visibility: any) => !visibility)\n }\n onMouseEnter={(): any =>\n hoverMode && !interactive && toggleDialog(() => true)\n }\n onMouseLeave={(): any =>\n hoverMode && !interactive && toggleDialog(() => false)\n }\n >\n {children}\n </div>\n {!(manualMode && !visible) &&\n !((hoverMode || clickMode) && !showDialog) && (\n <div\n className={classNames('TDB-Dialog', {\n 'TDB-Dialog--transparent': variant === 'transparent',\n })}\n ref={setPopperElement}\n style={styles.popper}\n {...attributes.popper}\n >\n {content}\n </div>\n )}\n </div>\n );\n};\n\nexport default Dialog;\n","import Dialog from './Dialog';\n\nexport default Dialog;\n","import React, { Component } from 'react';\nimport './ErrorBoundary.scss';\nimport { ForbiddenError, NotFoundError } from 'utils/errors';\nimport { withRouter } from 'react-router-dom';\nimport * as Sentry from '@sentry/react';\nimport { rootPath } from 'utils/links';\nimport ChunkLoadError from 'utils/errors/ChunkLoadError';\nimport Placeholder from 'components/v2/Placeholder';\n\nexport class ErrorBoundary extends Component<any, {}> {\n state = {\n hasError: false,\n message: '',\n type: '',\n eventId: undefined,\n };\n\n componentDidCatch(error: any, info: any): void {\n this.setState({\n hasError: true,\n message: error.message,\n type: error.type,\n });\n // send to sentry\n if (!error.type) {\n Sentry.withScope((scope) => {\n scope.setExtras(info);\n const eventId = Sentry.captureException(error);\n this.setState({ eventId });\n });\n }\n }\n\n handleResolve(callback: () => void): void {\n callback();\n this.setState({\n hasError: false,\n message: '',\n type: '',\n });\n }\n render(): any {\n const { hasError, message, type, eventId } = this.state;\n const { history } = this.props;\n\n if (hasError) {\n if (type === ForbiddenError.type) {\n return (\n <Placeholder\n graphic=\"unauthorized-access\"\n title=\"Access denied\"\n description={\n message || \"You don't have permissions to access this page.\"\n }\n actions={[\n {\n variant: 'primary',\n size: 'large',\n children: 'Back to home',\n onClick: (): void =>\n this.handleResolve((): void => history.push(rootPath)),\n },\n ]}\n />\n );\n } else if (type === NotFoundError.type) {\n return (\n <Placeholder\n graphic=\"no-search-results\"\n title=\"Page not found\"\n description={\n message ||\n \"The page you are looking for might have been removed, had it's name changed or is temporary unavailable.\"\n }\n actions={[\n {\n variant: 'primary',\n size: 'large',\n children: 'Back to home',\n onClick: (): void =>\n this.handleResolve((): void => history.push(rootPath)),\n },\n ]}\n />\n );\n } else if (type === ChunkLoadError.type) {\n return (\n <>\n <Placeholder\n graphic=\"unexpected-error\"\n title=\"New version available. You should refresh your page.\"\n description=\"This should happen automatically but you have disabled your session storage and as a result you have to do this manually.\"\n actions={[\n {\n variant: 'primary',\n size: 'large',\n children: 'Refresh page',\n onClick: (): void => window.location.reload(),\n },\n ]}\n />\n </>\n );\n } else {\n return (\n <Placeholder\n graphic=\"unexpected-error\"\n title={'Uh oh, something went wrong!'}\n description={\n message ||\n 'An unexpected error occurred. Please try again later or contact our team.'\n }\n actions={[\n {\n variant: 'primary',\n size: 'large',\n children: 'Refresh page',\n onClick: (): void => window.location.reload(),\n },\n {\n variant: 'secondary',\n size: 'large',\n children: 'Report issue',\n onClick: (): void => Sentry.showReportDialog({ eventId }),\n },\n ]}\n />\n );\n }\n }\n return this.props.children;\n }\n}\n\nexport default withRouter(ErrorBoundary);\n","import React from 'react';\nimport * as Sentry from '@sentry/react';\nimport Text from 'components/Text';\n\ninterface CustomErrorBoundaryProps extends React.PropsWithChildren {\n fallbackContent?: React.ReactNode;\n onError?: (err: Error) => void;\n}\n\nclass CustomErrorBoundary extends React.Component<\n CustomErrorBoundaryProps,\n any\n> {\n state = {\n hasError: false,\n message: undefined,\n };\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void {\n this.setState({\n hasError: true,\n message: error.message,\n });\n\n Sentry.withScope((scope) => {\n scope.setExtras(errorInfo as never);\n const eventId = Sentry.captureException(error);\n this.setState({ eventId });\n });\n\n this.props.onError?.(error);\n }\n\n render() {\n if (this.state.hasError) {\n return (\n this.props.fallbackContent || (\n <Text as=\"p\">Unexpected error occurred.</Text>\n )\n );\n }\n\n return this.props.children;\n }\n}\n\nexport default CustomErrorBoundary;\n","import CustomErrorBoundary from './CustomErrorBoundary';\n\nexport default CustomErrorBoundary;\n","import ErrorBoundary from './ErrorBoundary';\nimport CustomErrorBoundary from './CustomErrorBoundary';\n\nexport { CustomErrorBoundary };\nexport default ErrorBoundary;\n","import React, { useState, useEffect, useMemo, useRef } from 'react';\nimport './InputText.scss';\nimport useFocus from 'hooks/useFocus';\nimport IconEye from 'components/Svg/icons/IconEye';\nimport IconEyeHidden from 'components/Svg/icons/IconEyeHidden';\nimport { Icon } from 'components/Svg';\nimport debounce from 'utils/helpers/debounce';\nimport classNames from 'classnames';\n\nexport interface InputTextProps {\n className?: string;\n placeholder?: string;\n error?: boolean | string;\n disabled?: boolean;\n initialValue?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n name?: string;\n autoFocus?: boolean;\n tabIndex?: number;\n value?: string;\n autocomplete?: string;\n Icon?: Icon;\n type?: string;\n ariaLabel?: string;\n debounceDelay?: number;\n size?: 'small';\n id?: string;\n}\n\nexport const InputText: React.FC<InputTextProps> = (props) => {\n const {\n className,\n placeholder,\n error,\n disabled,\n initialValue,\n onChange,\n name,\n autoFocus,\n size,\n tabIndex,\n autocomplete = 'off',\n Icon,\n type,\n ariaLabel,\n debounceDelay = 0,\n id,\n ...rest\n } = props;\n const [inputValue, setInputValue] = useState(initialValue);\n const [inputType, setInputType] = useState(type);\n const [inputRef] = useFocus(autoFocus);\n const [hasFocus, setFocus] = useState(autoFocus);\n const isPasswordType = useMemo(() => inputType === 'password', [inputType]);\n const debouncedOnChange = useRef(\n debounce(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n },\n debounceDelay,\n debounceDelay === 0 // call immediately if no debounce passed\n )\n ).current;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const { value } = e.target;\n setInputValue(value);\n if (debounceDelay) {\n debouncedOnChange(e);\n } else {\n onChange?.(e);\n }\n };\n\n const toggleType = (): void => {\n setInputType(isPasswordType ? 'text' : 'password');\n };\n\n /**\n * Allow input to be controlled\n */\n useEffect(() => {\n setInputValue(initialValue);\n }, [initialValue]);\n\n return (\n <div\n className={classNames('TDB-InputText', className, {\n 'TDB-InputText--small': size === 'small',\n 'has-error': error,\n 'has-button': type === 'password',\n 'has-icon': Icon,\n 'has-focus': hasFocus,\n 'is-disabled': disabled,\n })}\n data-testid=\"TDB-InputText\"\n >\n {Icon && (\n <Icon\n className=\"TDB-InputText__Icon\"\n size={16}\n colorToken=\"color-text-secondary-default\"\n />\n )}\n <input\n ref={inputRef}\n placeholder={placeholder}\n type={inputType}\n disabled={disabled}\n value={inputValue}\n name={name}\n id={id || name}\n tabIndex={tabIndex}\n autoComplete={autocomplete}\n {...rest}\n required={undefined}\n aria-invalid={error ? 'true' : 'false'}\n aria-describedby={error ? `${name}__error` : undefined}\n aria-label={ariaLabel as string}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n onChange={handleChange}\n />\n {type === 'password' && (\n <>\n <button\n type=\"button\"\n onClick={toggleType}\n className=\"TDB-InputText__Button\"\n aria-label={isPasswordType ? 'Show password' : 'Hide password'}\n >\n {isPasswordType ? <IconEye /> : <IconEyeHidden />}\n </button>\n </>\n )}\n </div>\n );\n};\n\nInputText.defaultProps = {\n type: 'text',\n initialValue: '',\n};\n\nexport default InputText;\n","/**\n * Component that accepts <head> tags as children\n */\n\nimport React from 'react';\n\nexport function Head(props: React.ComponentProps<any>): null {\n React.Children.map(props.children, (child) => {\n if (child.type === 'title') {\n document.title = `${child.props.children} • TileDB`;\n }\n });\n return null;\n}\n\nexport default React.memo(Head);\n","import './LazyLoadListWrapper.scss';\nimport React, { useRef } from 'react';\nimport useScrollPosition from 'hooks/useScrollPosition';\nimport classNames from 'classnames';\nimport Spinner from 'components/Spinner';\nimport useMount from 'hooks/useMount';\n\ninterface LazyLoadListWrapperProps extends React.PropsWithChildren {\n onScrollEnd: (() => void) | undefined;\n className?: string;\n loading: boolean;\n // Specify in pixels the distance from bottom to trigger onScrollEnd\n triggerOffset?: number;\n // Passes div element to parent on mount\n getRef?: (ref: HTMLDivElement) => void;\n}\n\nconst LazyLoadListWrapper: React.FC<LazyLoadListWrapperProps> = (props) => {\n const {\n children,\n onScrollEnd,\n className,\n loading,\n triggerOffset = 0,\n getRef,\n } = props;\n const ref = useRef<any>(null);\n\n useScrollPosition((result) => {\n const { scrollTop, scrollHeight, height } = result;\n\n // Trigger callback on scroll end\n if (scrollTop + height + triggerOffset >= scrollHeight) {\n if (!loading && onScrollEnd) {\n onScrollEnd();\n }\n }\n }, ref);\n\n // Pass div element to parent\n useMount(() => getRef?.(ref.current as HTMLDivElement));\n\n return (\n <div ref={ref} className={classNames('TDB-LazyLoadListWrapper', className)}>\n {children}\n {loading && (\n <div className=\"TDB-LazyLoadListWrapper__Loader\">\n <Spinner />\n </div>\n )}\n </div>\n );\n};\n\nexport default LazyLoadListWrapper;\n","import LazyLoadListWrapper from './LazyLoadListWrapper';\n\nexport default LazyLoadListWrapper;\n","import React, { useRef, useEffect } from 'react';\nimport './Loader.scss';\nimport Lottie, { AnimationItem } from 'lottie-web';\nimport loaderDotsOnly from 'lotties/loader-dots-only.json';\nimport loaderBracketsT from 'lotties/loader-brackets-t.json';\nimport classNames from 'classnames';\n\ntype LoaderType = 'dots-only' | 'brackets-t';\n\nexport interface LoaderProps {\n size?: number | string;\n className?: string;\n speed?: number;\n type?: LoaderType;\n 'data-testid'?: string;\n}\n\nexport function getAnimationData(type: LoaderType): object {\n return {\n 'dots-only': loaderDotsOnly,\n 'brackets-t': loaderBracketsT,\n }[type];\n}\n\nexport const Loader: React.FC<LoaderProps> = (props) => {\n const { size, className, type = 'brackets-t', speed = 0 } = props;\n\n const divRef = useRef<HTMLDivElement>(null);\n const lottie = useRef<AnimationItem>();\n\n useEffect(() => {\n lottie.current = Lottie.loadAnimation({\n container: divRef.current as HTMLDivElement,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n animationData: getAnimationData(type),\n });\n\n lottie.current.setSpeed(speed);\n }, [divRef, lottie, speed, type]);\n\n return (\n <div\n className={classNames('TDB-Loader', className)}\n data-testid=\"TDB-Loader\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n aria-label=\"Loading\"\n >\n <div\n className=\"d-flex align-center justify-center\"\n ref={divRef}\n style={{ width: size }}\n ></div>\n </div>\n );\n};\n\nLoader.defaultProps = {\n size: 64,\n speed: 1,\n};\n\nexport default React.memo(Loader);\n","import Loader from './Loader';\n\nexport default Loader;\n","import Head from './Head';\n\nexport default Head;\n","import React from 'react';\nimport './Page.scss';\nimport Head from 'components/Head';\nimport ErrorBoundary from 'components/ErrorBoundary';\nimport classNames from 'classnames';\n\ninterface PageProps {\n children: React.ReactNode;\n name: string;\n className?: string;\n title?: string;\n width?: string | number;\n noPadding?: boolean;\n dataTestId?: string;\n dataCy?: string;\n}\n\nexport const Page: React.FC<PageProps> = (props) => {\n const {\n children,\n name,\n className,\n title = false,\n noPadding,\n width,\n dataTestId,\n dataCy,\n } = props;\n\n return (\n <ErrorBoundary>\n <main\n className={classNames('TDB-Page', name, className, {\n 'TDB-Page--no-padding': noPadding,\n })}\n data-testid={dataTestId || name}\n data-cy={dataCy || name}\n >\n <div className=\"TDB-Page__content\" style={{ maxWidth: width }}>\n {title && (\n <Head>\n <title>{title}</title>\n </Head>\n )}\n {children}\n </div>\n </main>\n </ErrorBoundary>\n );\n};\n\nPage.defaultProps = {\n width: 1280,\n};\n\nexport default React.memo(Page);\n","import Page from './Page';\n\nexport default Page;\n","import * as React from 'react';\nimport history from 'utils/helpers/history';\nimport { ArrayActions, GroupActions, NamespaceActions } from 'api-client';\nimport Placeholder from 'components/v2/Placeholder';\n\ninterface Props extends React.PropsWithChildren {\n permissions?: NamespaceActions[] | ArrayActions[] | GroupActions[];\n showFallback?: boolean;\n requiredPermission: NamespaceActions | ArrayActions | GroupActions;\n}\n\nconst PermissionsGuard: React.FC<Props> = (props) => {\n const {\n showFallback,\n children,\n requiredPermission,\n permissions = [],\n } = props;\n if (!permissions.includes(requiredPermission as never)) {\n if (showFallback) {\n return (\n <Placeholder\n title=\"Access denied\"\n description=\"You don't have permissions to access this page.\"\n graphic=\"unauthorized-access\"\n actions={[\n {\n variant: 'primary',\n size: 'large',\n children: 'Back to home',\n onClick: (): void => history.push('/'),\n },\n ]}\n />\n );\n }\n\n return null;\n }\n\n return <>{children}</>;\n};\n\nexport default PermissionsGuard;\n","import PermissionsGuard from './PermissionsGuard';\n\nexport default PermissionsGuard;\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24.0174 4C13.6429 4 4 12.9375 4 24C4.01979 25.0052 4.08474 25.9825 4.20848 26.8497C4.58164 29.2937 5.90709 29.8662 7.00606 29.7689C7.56493 29.7194 8.06669 29.4597 8.39616 29.0391C8.70954 28.639 8.9037 28.0844 8.77842 27.2667C8.75219 27.1535 8.7425 27.0272 8.72632 26.9192C8.54479 25.982 8.41355 25.0058 8.41355 24C8.41355 15.4002 15.4194 8.43095 24.0174 8.43095C32.5972 8.43095 39.5865 15.4002 39.5865 24C39.5865 32.5816 32.599 39.5691 24.0174 39.5691C22.0816 39.5691 20.2465 39.2233 18.5613 38.596C15.7917 37.4239 13.988 41.1698 16.8063 42.6621C19.0014 43.6996 21.8391 43.9843 24.0174 44C35.0605 44 44 35.0626 44 24C43.8101 12.4069 33.8881 4.16408 24.0174 4Z\"\n />,\n 'load-circle'\n);\n","import Spinner from './Spinner';\n\nexport default Spinner;\n","import * as React from 'react';\nimport { SvgIconProps } from 'components/Svg';\nimport './Spinner.scss';\nimport classNames from 'classnames';\nimport IconLoadCircle from 'components/Svg/icons/IconLoadCircle';\n\ninterface Props {\n Icon?: React.ComponentType<SvgIconProps>;\n iconProps?: SvgIconProps;\n speed?: 'fast' | 'slow';\n className?: string;\n}\n\nconst Spinner: React.FC<Props> = (props) => {\n const { Icon = IconLoadCircle, speed, className, iconProps } = props;\n\n return (\n <div\n className={classNames('TDB-Spinner', className, {\n 'TDB-Spinner--slow': speed === 'slow',\n 'TDB-Spinner--fast': speed === 'fast',\n })}\n >\n <Icon colorToken=\"text-action-brand\" {...iconProps} />\n </div>\n );\n};\n\nexport default Spinner;\n","/**\n * This is used to create svg icons.\n * Wrap an svg <path> with the `createSvgIcon` hoc to create an icon.\n */\n\nimport React from 'react';\nimport './Svg.scss';\nimport { TextColorToken } from 'components/Text/Text';\nimport classNames from 'classnames';\n\nexport type IconBackgroundColorToken =\n | 'background-secondary'\n | 'background-primary'\n | 'background-deco'\n // V2 tokens\n | 'color-icon-emphasis-default'\n | 'color-text-default'\n | 'color-text-disabled'\n | 'color-bg-fill-success-default'\n | 'color-bg-fill-info-icon-default'\n | 'color-bg-fill-info-default'\n | 'color-bg-fill-warning-icon-default'\n | 'color-bg-fill-emphasis-default'\n | 'color-bg-fill-warning-default'\n | 'color-text-secondary-default'\n | 'color-text-on-surface-secondary-info-default';\n\nexport interface SvgIconProps {\n size?: number | string;\n fill?: string;\n colorToken?: TextColorToken | IconBackgroundColorToken;\n className?: string;\n}\n\nexport type Icon = React.ComponentType<SvgIconProps>;\n\ninterface CreateSvgIconProps extends SvgIconProps {\n title: string;\n children: React.ReactNode;\n}\n\nconst Svg: React.FC<CreateSvgIconProps> = (props) => {\n const { children, title, size, colorToken, fill, className, ...rest } = props;\n const fillColor = colorToken ? `var(--${colorToken})` : fill;\n return (\n <svg\n width={size}\n height={size}\n fill={fillColor}\n focusable=\"false\"\n viewBox=\"0 0 48 48\"\n className={classNames('TDB-Svg', className)}\n {...rest}\n >\n {title && <title>{title}</title>}\n {children}\n </svg>\n );\n};\n\nSvg.defaultProps = {\n title: '',\n size: 24,\n fill: 'var(--text-main-secondary)',\n};\n\nexport function createSvgIcon(\n path: React.ReactElement,\n title: string\n): React.ComponentType<SvgIconProps> {\n const Icon: React.FC<SvgIconProps> = (props) => (\n <Svg title={title} {...props}>\n {path}\n </Svg>\n );\n return Icon;\n}\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M4 44L4 26H22V44H4Z\" />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M4 22L4 4H22V22H4Z\" />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M26 44V26H44V44H26Z\" />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M26 22V6L42 6V22H26Z\" />\n </>,\n 'array'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M12.4556 21.0595C12.3181 21.0796 12.2483 21.0185 12.2436 20.8768C12.242 20.8287 12.2407 20.7806 12.2407 20.7325C12.2406 17.1645 12.2375 15.8951 12.2425 12.3271C12.2441 11.1431 12.9181 10.2079 13.9744 9.89267C14.207 9.82325 14.446 9.78965 14.6893 9.78971C17.1825 9.79036 19.6757 9.78756 22.169 9.79121C23.5672 9.79327 24.589 10.8498 24.5893 12.286C24.59 15.846 24.5887 17.1074 24.5892 20.6674C24.5892 21.1058 24.4563 21.0526 24.0869 21.0462C22.8484 21.0248 12.7501 21.0165 12.4556 21.0595ZM10.4376 39.9991C10.1145 39.999 9.80159 40.0406 9.502 40.1726C8.25913 40.7205 8.31672 41.7611 8.53291 42.6565C8.76484 43.6171 9.66385 43.9957 10.6268 43.9961C17.3532 43.9986 35.9518 44.0012 38.2432 43.9954C39.3792 43.9926 40.3516 43.0901 40.3957 41.9753C40.4264 41.1986 40.4019 41.0058 40.4071 40.2278C40.4082 40.0611 40.3368 39.994 40.1818 40.0003C40.1039 40.0034 40.0259 40.0001 39.948 40.0001C35.1156 40 15.2544 40.0004 10.4376 39.9991ZM38.8554 26.3973C38.5566 24.3816 37.9887 22.4601 36.9962 20.6823C35.9163 18.7481 34.4228 17.236 32.5987 16.049C30.8145 14.888 28.8815 14.1426 26.7997 13.7992C26.4974 13.7493 26.4615 13.77 26.4612 14.0164C26.459 16.0617 26.4608 18.107 26.4591 20.1523C26.4589 20.3189 26.5174 20.4121 26.6819 20.465C28.4081 21.0198 29.8601 22.007 31.0171 23.4374C32.1118 24.7909 32.5458 26.3697 32.4513 28.1124C32.44 28.3196 32.4864 28.4042 32.6997 28.4024C33.5959 28.3949 34.4924 28.3894 35.3885 28.4018C36.51 28.4174 37.6325 28.3456 38.7531 28.4423C39.0407 28.4671 39.0489 28.4551 39.0376 28.1424C38.9921 27.559 38.9412 26.9764 38.8554 26.3973ZM40.1133 38.2706C40.3361 38.2727 40.4132 38.1987 40.4106 37.9674C40.4009 37.0942 40.4129 33.306 40.4034 32.151C40.3978 31.4569 40.1049 30.9024 39.572 30.4791C39.1277 30.1261 38.6054 30.0454 38.07 30.044C36.1994 30.0392 31.8054 30.0388 31.478 30.0802C29.3757 30.3458 27.7711 32.1941 27.764 34.3755C27.7598 35.6509 27.7627 36.6576 27.7633 37.933C27.7635 38.2588 27.7715 38.2664 28.0945 38.2665C30.0976 38.2669 39.1079 38.2614 40.1133 38.2706ZM12.8348 22.7827C11.9631 22.7844 11.3214 23.4363 11.3261 24.3031C11.3279 24.6398 11.3334 24.9765 11.3364 25.3132C11.35 26.8071 12.4537 27.5799 13.9024 27.5826C16.9101 27.5881 19.9179 27.5872 22.9257 27.5829C24.2313 27.5811 25.2533 27.0641 25.4857 25.7418C25.5626 25.3042 25.5169 24.8616 25.5196 24.4214C25.526 23.406 24.9211 22.7824 23.9386 22.7818C22.0997 22.7805 14.6971 22.7791 12.8348 22.7827ZM23.6417 38.2665C23.9725 38.2664 23.9768 38.2612 23.9775 37.913C23.9781 37.6403 23.9883 37.367 23.9746 37.095C23.942 36.4467 23.6772 35.9285 23.1474 35.5571C22.7455 35.2754 22.2927 35.2272 21.829 35.2267C19.6153 35.2242 17.4017 35.2247 15.188 35.2269C14.9624 35.2272 14.7362 35.2383 14.5114 35.2582C13.6332 35.3358 12.9045 36.1357 12.8837 37.0436C12.8769 37.3403 12.8798 37.6372 12.8814 37.934C12.8831 38.2611 12.8899 38.2663 13.2127 38.2663C14.9508 38.2664 21.9036 38.2669 23.6417 38.2665ZM22.2185 8.0628C22.4265 8.06387 22.4946 7.99116 22.472 7.77851C22.2046 5.25527 19.9721 3.57956 17.5531 4.0908C15.9061 4.43887 14.5494 5.96932 14.3893 7.65972C14.354 8.03287 14.3742 8.05751 14.7121 8.05747C15.9515 8.05736 20.9558 8.05634 22.2185 8.0628ZM14.5054 29.3154C14.2281 29.3157 14.199 29.3499 14.2007 29.6359C14.2077 30.812 15.2477 31.604 16.406 31.6184C17.762 31.6352 19.1184 31.6348 20.4743 31.6181C21.6057 31.6041 22.6137 30.838 22.628 29.6739C22.6321 29.3365 22.6176 29.3173 22.2915 29.3169C20.9977 29.3153 15.807 29.3141 14.5054 29.3154Z\" />,\n 'biomedical-imaging'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M41.8883 3.90856C40.5665 2.97737 38.8742 2.74758 37.3521 3.29238L24.3299 7.96266C24.1133 8.04063 23.8759 8.04063 23.6593 7.96266L10.6477 3.29238C9.12496 2.74551 7.43131 2.97459 6.10815 3.9058C4.78535 4.83735 3.99867 6.35463 4 7.97269V34.1156C4.00069 35.1393 4.31745 36.1378 4.90698 36.9748C5.49647 37.8114 6.3303 38.4459 7.29406 38.7908L22.3284 44.1815C23.4125 44.57 24.5977 44.57 25.6821 44.1815L40.7112 38.7908C41.674 38.4449 42.5067 37.8103 43.0955 36.9738C43.684 36.1369 44 35.1387 44 34.1157V7.97278C44 6.35507 43.2123 4.83886 41.8887 3.90864L41.8883 3.90856ZM7.97441 34.1157V7.9728C7.97372 7.64842 8.1314 7.34449 8.39687 7.15803C8.56218 7.04021 8.76007 6.97609 8.96315 6.97401C9.07994 6.97367 9.19604 6.99377 9.3059 7.03362L22.0149 11.5947V39.8491L8.63518 35.0496C8.23976 34.9089 7.97533 34.5353 7.97429 34.1156L7.97441 34.1157ZM40.0252 34.1157C40.0248 34.534 39.7628 34.9076 39.3691 35.0497L25.9894 39.8492V11.5948L38.6984 7.03885H38.6988C39.0027 6.93072 39.3399 6.97681 39.6036 7.16257C39.8673 7.34832 40.0247 7.65018 40.0254 7.97282L40.0252 34.1157Z\" />,\n 'book'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M14 24C14 21.2333 11.7667 19 9 19C6.23333 19 4 21.2333 4 24C4 26.7667 6.23333 29 9 29C11.7667 29 14 26.7667 14 24ZM19 24C19 26.7667 21.2333 29 24 29C26.7667 29 29 26.7667 29 24C29 21.2333 26.7667 19 24 19C21.2333 19 19 21.2333 19 24ZM34 24C34 26.7667 36.2333 29 39 29C41.7667 29 44 26.7667 44 24C44 21.2333 41.7667 19 39 19C36.2333 19 34 21.2333 34 24Z\" />,\n 'bullets-horizontal'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M33 24C33.0009 24.5052 32.9006 25.0055 32.7051 25.4713C32.5096 25.9372 32.2227 26.3591 31.8615 26.7123L18.0791 40.3096C17.6279 40.7524 17.0209 41.0004 16.3887 41C15.7565 40.9996 15.1497 40.751 14.699 40.3076C14.4775 40.0897 14.3016 39.8298 14.1815 39.5431C14.0615 39.2564 13.9998 38.9487 14 38.638C14.0002 38.3272 14.0623 38.0196 14.1826 37.7331C14.303 37.4465 14.4792 37.1869 14.701 36.9692L27.8475 24L14.701 11.0308C14.4793 10.8131 14.3032 10.5534 14.1829 10.2668C14.0626 9.98034 14.0006 9.67274 14.0004 9.362C14.0002 9.05126 14.0619 8.74359 14.1818 8.45693C14.3018 8.17028 14.4776 7.91037 14.699 7.69236C15.1497 7.24899 15.7565 7.00034 16.3887 6.99997C17.0209 6.9996 17.6279 7.24752 18.0791 7.69036L31.8615 21.2871C32.2227 21.6405 32.5095 22.0625 32.705 22.5285C32.9006 22.9944 33.0009 23.4947 33 24Z\" />,\n 'carret-right'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M24.0365 44C26.7664 44 29.3352 43.4771 31.7428 42.4314C34.1505 41.3856 36.2754 39.9447 38.1176 38.1085C39.9538 36.2724 41.3947 34.1444 42.4405 31.7246C43.4802 29.3048 44 26.7299 44 24C44 21.264 43.4771 18.6922 42.4314 16.2845C41.3856 13.8708 39.9416 11.7428 38.0994 9.90059C36.2572 8.05837 34.1262 6.61438 31.7063 5.56863C29.2865 4.52288 26.7117 4 23.9818 4C21.2458 4 18.674 4.51983 16.2663 5.55951C13.8526 6.59918 11.7276 8.04013 9.89147 9.88236C8.05533 11.7185 6.61438 13.8434 5.56863 16.2572C4.52288 18.6648 4 21.2336 4 23.9635C4 26.6934 4.51984 29.2652 5.55951 31.679C6.59918 34.0927 8.04013 36.2177 9.88235 38.0538C11.7185 39.8839 13.8434 41.3218 16.2572 42.3675C18.6648 43.4072 21.2336 43.927 23.9635 43.927L24.0365 44ZM21.3461 34.0593C21.0056 34.0593 20.6986 33.9833 20.425 33.8313C20.1453 33.6793 19.8687 33.433 19.5951 33.0926L13.9316 26.1158C13.7857 25.9273 13.6702 25.7237 13.585 25.5048C13.4999 25.2798 13.4574 25.0549 13.4574 24.8299C13.4574 24.3678 13.6124 23.9818 13.9225 23.6717C14.2326 23.3555 14.6095 23.1974 15.0534 23.1974C15.3269 23.1974 15.5853 23.2582 15.8285 23.3798C16.0717 23.5014 16.3058 23.7112 16.5308 24.0091L21.2093 30.0556L30.3201 15.4546C30.6971 14.8527 31.1652 14.5518 31.7246 14.5518C32.1502 14.5518 32.5363 14.6855 32.8828 14.953C33.2233 15.2206 33.3935 15.5884 33.3935 16.0565C33.3935 16.2754 33.3388 16.4973 33.2294 16.7223C33.1199 16.9412 33.0074 17.1479 32.8919 17.3425L22.9147 33.0287C22.7019 33.351 22.4557 33.5911 22.176 33.7492C21.8903 33.9012 21.5863 33.9772 21.264 33.9772L21.3461 34.0593Z\" />,\n 'check-filled'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M19.4561 43.8944C20.7975 43.8944 21.8294 43.349 22.5517 42.2581L43.2483 10.3289C43.5136 9.93091 43.7052 9.54764 43.8232 9.17911C43.9411 8.81058 44.0001 8.45679 44.0001 8.11775C44.0001 7.2038 43.7015 6.45568 43.1045 5.87341C42.5075 5.29114 41.7447 5 40.816 5C40.1821 5 39.6477 5.1253 39.2129 5.3759C38.778 5.6265 38.3689 6.06136 37.9857 6.68049L19.3677 36.1333L9.85967 24.1488C9.15209 23.2643 8.275 22.8221 7.22838 22.8221C6.29968 22.8221 5.52946 23.1206 4.9177 23.7176C4.30595 24.3146 4.00007 25.0701 4.00007 25.984C4.00007 26.3968 4.07009 26.7911 4.21013 27.167C4.35017 27.5429 4.59709 27.9299 4.95087 28.3279L16.3826 42.3688C17.2228 43.3859 18.2473 43.8945 19.4561 43.8945L19.4561 43.8944Z\" />,\n 'checkmark'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M39.3394 36.1574C39.7612 36.5777 39.9987 37.1484 39.9996 37.7438C40.0005 38.3392 39.7648 38.9106 39.3443 39.3323C38.9238 39.754 38.353 39.9914 37.7574 39.9923C37.1618 39.9932 36.5903 39.7575 36.1685 39.3371L23.9988 27.1706L11.8388 39.3371C11.63 39.5459 11.3821 39.7115 11.1092 39.8245C10.8363 39.9375 10.5439 39.9957 10.2485 39.9957C9.65205 39.9957 9.08 39.7588 8.65823 39.3371C8.23645 38.9155 7.9995 38.3436 7.9995 37.7473C7.9995 37.1509 8.23645 36.579 8.65823 36.1574L20.8279 24.0005L8.6581 11.834C8.23632 11.4124 7.99937 10.8405 7.99937 10.2441C7.99937 9.64781 8.23632 9.07591 8.6581 8.65425C9.07987 8.23259 9.65192 7.9957 10.2484 7.9957C10.8449 7.9957 11.4169 8.23259 11.8387 8.65425L23.9987 20.8208L36.1685 8.65425C36.5903 8.23387 37.1618 7.99822 37.7574 7.99912C38.353 8.00003 38.9238 8.23743 39.3443 8.6591C39.7648 9.08076 40.0005 9.65215 39.9996 10.2476C39.9987 10.843 39.7612 11.4136 39.3394 11.834L27.1794 24.0005L39.3394 36.1574Z\" />,\n 'close'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 4C35.0457 4 44 12.9543 44 24C44 35.0457 35.0457 44 24 44C12.9543 44 4 35.0457 4 24C4 12.9543 12.9543 4 24 4ZM24 21.643L16.8422 14.4851C16.5622 14.2051 16.3426 14.0731 16.1068 14.0016C15.871 13.9302 15.6298 13.9302 15.394 14.0016C15.1582 14.0731 14.9387 14.2051 14.6587 14.4851L14.4851 14.6587C14.2051 14.9387 14.0731 15.1582 14.0016 15.394C13.9302 15.6298 13.9302 15.871 14.0016 16.1068C14.0731 16.3426 14.2051 16.5622 14.4851 16.8422L21.643 24L14.4851 31.1578C14.2051 31.4378 14.0731 31.6574 14.0016 31.8932C13.9302 32.129 13.9302 32.3702 14.0016 32.606C14.0731 32.8418 14.2051 33.0613 14.4851 33.3413L14.6587 33.5149C14.9387 33.7949 15.1582 33.9269 15.394 33.9984C15.6298 34.0698 15.871 34.0698 16.1068 33.9984C16.3426 33.9269 16.5622 33.7949 16.8422 33.5149L24 26.357L31.1578 33.5149C31.4378 33.7949 31.6574 33.9269 31.8932 33.9984C32.129 34.0698 32.3702 34.0698 32.606 33.9984C32.8418 33.9269 33.0613 33.7949 33.3413 33.5149L33.5149 33.3413C33.7949 33.0613 33.9269 32.8418 33.9984 32.606C34.0698 32.3702 34.0698 32.129 33.9984 31.8932C33.9269 31.6574 33.7949 31.4378 33.5149 31.1578L26.357 24L33.5149 16.8422C33.7949 16.5622 33.9269 16.3426 33.9984 16.1068C34.0698 15.871 34.0698 15.6298 33.9984 15.394C33.9269 15.1582 33.7949 14.9387 33.5149 14.6587L33.3413 14.4851C33.0613 14.2051 32.8418 14.0731 32.606 14.0016C32.3702 13.9302 32.129 13.9302 31.8932 14.0016C31.6574 14.0731 31.4378 14.2051 31.1578 14.4851L24 21.643Z\"\n />,\n 'close-filled'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M5.47059 3H42.5294C43.8939 3 45 4.10612 45 5.47059V20.2941C45 21.6586 43.8939 22.7647 42.5294 22.7647H5.47059C4.10612 22.7647 3 21.6586 3 20.2941V5.47059C3 4.10612 4.10612 3 5.47059 3ZM15.3529 11.0294H21.5294C22.2116 11.0294 22.7647 10.4764 22.7647 9.79412C22.7647 9.11188 22.2116 8.55882 21.5294 8.55882H15.3529C14.6707 8.55882 14.1176 9.11188 14.1176 9.79412C14.1176 10.4764 14.6707 11.0294 15.3529 11.0294ZM9.79412 11.6471C10.8175 11.6471 11.6471 10.8175 11.6471 9.79412C11.6471 8.77077 10.8175 7.94118 9.79412 7.94118C8.77077 7.94118 7.94118 8.77077 7.94118 9.79412C7.94118 10.8175 8.77077 11.6471 9.79412 11.6471ZM5.47059 25.2353H20.2941C21.6586 25.2353 22.7647 26.3414 22.7647 27.7059V42.5294C22.7647 43.8939 21.6586 45 20.2941 45H5.47059C4.10612 45 3 43.8939 3 42.5294V27.7059C3 26.3414 4.10612 25.2353 5.47059 25.2353ZM15.9706 35.1176C15.9706 36.8232 14.5879 38.2059 12.8824 38.2059C11.1768 38.2059 9.79412 36.8232 9.79412 35.1176C9.79412 33.4121 11.1768 32.0294 12.8824 32.0294C13.5646 32.0294 14.1176 31.4764 14.1176 30.7941C14.1176 30.1119 13.5646 29.5588 12.8824 29.5588C9.8123 29.5588 7.32353 32.0476 7.32353 35.1176C7.32353 38.1877 9.8123 40.6765 12.8824 40.6765C15.9524 40.6765 18.4412 38.1877 18.4412 35.1176C18.4412 34.4354 17.8881 33.8824 17.2059 33.8824C16.5236 33.8824 15.9706 34.4354 15.9706 35.1176ZM27.7059 25.2353H42.5294C43.8939 25.2353 45 26.3414 45 27.7059V42.5294C45 43.8939 43.8939 45 42.5294 45H27.7059C26.3414 45 25.2353 43.8939 25.2353 42.5294V27.7059C25.2353 26.3414 26.3414 25.2353 27.7059 25.2353ZM31.5353 35.4882L33.3951 34.0933L35.1828 34.9872C35.6218 35.2067 36.1491 35.1455 36.5261 34.8313L40.232 31.7431C40.7561 31.3063 40.8269 30.5274 40.3902 30.0033C39.9534 29.4792 39.1745 29.4084 38.6504 29.8451L35.5651 32.4162L33.8172 31.5422C33.3987 31.3329 32.8978 31.3781 32.5235 31.6588L30.0529 33.5118C29.5071 33.9211 29.3965 34.6954 29.8059 35.2412C30.2152 35.787 30.9895 35.8976 31.5353 35.4882ZM32.6471 40.0588H37.5882C38.2705 40.0588 38.8235 39.5058 38.8235 38.8235C38.8235 38.1413 38.2705 37.5882 37.5882 37.5882H32.6471C31.9648 37.5882 31.4118 38.1413 31.4118 38.8235C31.4118 39.5058 31.9648 40.0588 32.6471 40.0588Z\" />,\n 'dashboard'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M41.4125 11.247C41.4125 9.63291 40.4432 7.35515 35.8265 5.68464C32.8289 4.59774 28.8806 4 24.7063 4C20.532 4 16.5839 4.59776 13.586 5.68464C8.96934 7.35549 8 9.63291 8 11.247V36.753C8 38.3671 8.96934 40.6448 13.5811 42.3154C16.5836 43.4023 20.532 44 24.7064 44C28.8808 44 32.8288 43.4022 35.8266 42.3154C40.4433 40.6445 41.4126 38.3671 41.4126 36.753L41.4125 11.247ZM24.7065 7.76474C33.1772 7.76474 37.6478 10.3531 37.6478 11.2472C37.6478 12.1411 33.1773 14.7294 24.7065 14.7294C16.2358 14.7294 11.7652 12.1411 11.7652 11.247C11.7652 10.3531 16.2358 7.76474 24.7065 7.76474ZM11.7652 16.0283C12.3541 16.3257 12.9608 16.5867 13.5818 16.8096C16.5841 17.8824 20.5324 18.4942 24.7063 18.4942C28.8802 18.4942 32.8287 17.8824 35.8307 16.8096C36.4534 16.5867 37.0617 16.3261 37.6519 16.0283V23.7647C37.6519 24.6589 33.2 27.2472 24.7106 27.2472C16.2215 27.2472 11.7694 24.6588 11.7694 23.7647L11.7652 16.0283ZM24.7065 40.2353C16.2359 40.2353 11.7652 37.6469 11.7652 36.7528V28.546C12.3541 28.8434 12.9608 29.1044 13.5818 29.3269C16.5841 30.4142 20.5324 31.0119 24.7063 31.0119C28.8802 31.0119 32.8287 30.4142 35.8265 29.3273V29.3269C36.4492 29.1044 37.0572 28.8434 37.6477 28.546V36.7531C37.6477 37.647 33.1772 40.2354 24.7064 40.2354L24.7065 40.2353ZM23.2948 24.9882H26.1185C26.7911 24.9882 27.4124 24.6295 27.7486 24.0468C28.0847 23.4645 28.0847 22.7469 27.7486 22.1646C27.4124 21.5823 26.791 21.2235 26.1185 21.2235H23.2948C22.6222 21.2235 22.0008 21.5823 21.6647 22.1646C21.3285 22.7469 21.3285 23.4645 21.6647 24.0468C22.0008 24.6295 22.6222 24.9882 23.2948 24.9882ZM23.2946 33.4589H26.1183C26.7908 33.4589 27.4123 33.8177 27.7484 34.4003C28.0845 34.9826 28.0845 35.7002 27.7484 36.2825C27.4123 36.8649 26.7909 37.2236 26.1183 37.2236H23.2946C22.6221 37.2236 22.0006 36.8649 21.6645 36.2825C21.3284 35.7003 21.3284 34.9827 21.6645 34.4003C22.0006 33.8177 22.622 33.4589 23.2946 33.4589Z\"\n />,\n 'database'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.0021 4H37.0125C38.855 4 40.3472 5.49229 40.3472 7.33473V34.0125C40.3472 35.855 38.855 37.3473 37.0125 37.3473H11.7587C10.9431 37.465 10.3174 38.166 10.3174 39.0146C10.3174 39.9457 11.0709 40.6993 12.0021 40.6993H38.6799C39.5911 40.6993 40.3299 41.438 40.3299 42.3493C40.3299 43.2606 39.5911 43.9993 38.6799 43.9993H12.0021C9.24837 43.9993 7.01735 41.7683 7.01735 39.0146C7.01735 39.0117 7.01735 39.0088 7.01736 39.0059L7 39.0146V9.00209C7 6.23927 9.23927 4 12.0021 4ZM18.6715 17.3389H30.3431C31.2635 17.3389 32.0104 16.5919 32.0104 15.6715C32.0104 14.7512 31.2635 14.0042 30.3431 14.0042H18.6715C17.7512 14.0042 17.0042 14.7512 17.0042 15.6715C17.0042 16.5919 17.7512 17.3389 18.6715 17.3389Z\"\n />,\n 'documentation'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M34.6664 31.4148C34.6894 28.2503 33.4494 25.7475 30.976 23.9801C29.0657 22.6193 26.7474 21.9095 24.5051 21.2274C19.8342 19.7988 18.4792 19.0464 18.4792 16.793C18.4792 14.2829 21.7127 13.3898 24.4808 13.3898C26.4967 13.3898 28.8161 14.0222 30.2564 14.9592L33.1121 10.4977C31.2296 9.26659 28.6531 8.42684 26.109 8.16619V4H20.8413V8.45834C16.1588 9.4975 13.209 12.5849 13.209 16.793C13.209 19.7401 14.4229 22.0773 16.8102 23.7257C18.6259 24.9842 20.8404 25.66 22.9795 26.3142C27.5611 27.7113 29.4216 28.5626 29.4004 31.3819L29.4003 31.4027C29.4003 33.769 26.2918 34.6102 23.6287 34.6102C21.1131 34.6102 18.3775 33.498 16.8269 31.8443L13 35.4961C14.9638 37.5914 17.8169 39.0728 20.8412 39.6534V44H26.109V39.747C31.3123 38.9956 34.6612 35.8354 34.6664 31.4148Z\"\n />,\n 'pricing'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M30.581 29.4468C31.0947 29.4468 31.5084 29.2684 31.8223 28.9117C32.1362 28.555 32.2932 28.0984 32.2932 27.542V17.7828C32.2932 17.0551 32.1041 16.5201 31.726 16.1776C31.3479 15.8352 30.8307 15.664 30.1744 15.664H20.3509C19.7802 15.664 19.3272 15.8209 18.9919 16.1348C18.6566 16.4487 18.489 16.8696 18.489 17.3975C18.489 17.9112 18.6602 18.3285 19.0026 18.6495C19.3451 18.9706 19.8016 19.1311 20.3723 19.1311H23.9464L26.7929 18.7887L23.711 21.6351L16.3274 29.0187C15.9279 29.404 15.7281 29.8463 15.7281 30.3456C15.7281 30.9021 15.8994 31.3479 16.2418 31.6832C16.5842 32.0185 17.0265 32.1862 17.5687 32.1862C17.8541 32.1862 18.1109 32.1362 18.3392 32.0364C18.5675 31.9365 18.7743 31.7938 18.9598 31.6083L26.3434 24.2461L29.1685 21.1643L28.8475 24.2033V27.5634C28.8475 28.1484 29.0044 28.6085 29.3183 28.9438C29.6322 29.2791 30.0531 29.4468 30.581 29.4468L30.581 29.4468ZM11.0412 44H36.9588C39.2702 44 41.0216 43.4115 42.213 42.2344C43.4043 41.0573 44 39.3202 44 37.023V10.977C44 8.67987 43.4043 6.94276 42.213 5.76565C41.0216 4.58855 39.2702 4 36.9588 4H11.0412C8.7298 4 6.97842 4.58855 5.78706 5.76565C4.59569 6.94275 4 8.67987 4 10.977V37.023C4 39.3202 4.59569 41.0573 5.78706 42.2344C6.97843 43.4115 8.72981 44 11.0412 44ZM11.3194 39.7411C10.3349 39.7411 9.58231 39.4842 9.06153 38.9706C8.54075 38.457 8.28037 37.6794 8.28037 36.6378V11.3623C8.28037 10.3207 8.54075 9.54314 9.06153 9.0295C9.58231 8.51585 10.3349 8.25903 11.3194 8.25903H36.6806C37.6651 8.25903 38.4213 8.51585 38.9492 9.0295C39.4771 9.54314 39.741 10.3207 39.741 11.3623V36.6378C39.741 37.6793 39.4771 38.457 38.9492 38.9706C38.4213 39.4842 37.6651 39.7411 36.6806 39.7411H11.3194Z\" />,\n 'external link'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M24 8C29.908 8 35.054 11.054 39 15C41.922 17.922 44 22.044 44 24C44 25.956 41.922 30.078 39 33C35.054 36.946 29.908 40 24 40C18.092 40 12.946 36.946 9 33C5.054 29.054 4 25.956 4 24C4 22.044 6.078 17.922 9 15C12.946 11.054 18.092 8 24 8ZM24 14C21.3478 14 18.8043 15.0536 16.9289 16.9289C15.0536 18.8043 14 21.3478 14 24C14 26.6522 15.0536 29.1957 16.9289 31.0711C18.8043 32.9464 21.3478 34 24 34C26.6522 34 29.1957 32.9464 31.0711 31.0711C32.9464 29.1957 34 26.6522 34 24C34 21.3478 32.9464 18.8043 31.0711 16.9289C29.1957 15.0536 26.6522 14 24 14ZM24 18.5C25.4587 18.5 26.8576 19.0795 27.8891 20.1109C28.9205 21.1424 29.5 22.5413 29.5 24C29.5 25.4587 28.9205 26.8576 27.8891 27.8891C26.8576 28.9205 25.4587 29.5 24 29.5C22.5413 29.5 21.1424 28.9205 20.1109 27.8891C19.0795 26.8576 18.5 25.4587 18.5 24C18.5 22.5413 19.0795 21.1424 20.1109 20.1109C21.1424 19.0795 22.5413 18.5 24 18.5Z\" />,\n 'eye'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M42.12 5.87936C42.6452 6.4041 42.9572 7.10495 42.9956 7.84638C43.034 8.58781 42.7962 9.31715 42.328 9.89336L42.122 10.1214L10.122 42.1214C9.57953 42.6719 8.84553 42.9918 8.07299 43.0144C7.30045 43.037 6.54898 42.7606 5.97522 42.2428C5.40145 41.725 5.04966 41.0058 4.99317 40.235C4.93668 39.4642 5.17986 38.7013 5.672 38.1054L5.878 37.8774L9.898 33.8614C9.592 33.5794 9.292 33.2914 9 32.9994C5.054 29.0534 4 25.9554 4 23.9994C4 22.0434 6.078 17.9214 9 14.9994C12.946 11.0534 18.092 7.99936 24 7.99936C27.342 7.99936 30.44 8.97736 33.216 10.5394L37.878 5.87936C38.1566 5.60058 38.4874 5.37943 38.8515 5.22855C39.2156 5.07766 39.6059 5 40 5C40.3941 5 40.7844 5.07766 41.1485 5.22855C41.5126 5.37943 41.8434 5.60058 42.122 5.87936H42.12ZM40.956 17.2854C42.806 19.7914 44 22.5194 44 23.9994C44 25.9554 41.922 30.0774 39 32.9994C35.054 36.9454 29.908 39.9994 24 39.9994C22.26 39.9994 20.582 39.7334 18.984 39.2594L24.246 33.9934L24.434 33.9894C26.9655 33.8792 29.3608 32.812 31.1358 31.0037C32.9107 29.1953 33.933 26.7805 33.996 24.2474L40.956 17.2874V17.2854ZM24 13.9994C22.2806 13.999 20.5901 14.4419 19.0919 15.2854C17.5936 16.1289 16.3381 17.3445 15.4467 18.8147C14.5552 20.285 14.0579 21.9603 14.0028 23.6788C13.9477 25.3973 14.3366 27.101 15.132 28.6254L18.618 25.1374C18.4283 24.2413 18.4653 23.312 18.7258 22.4339C18.9863 21.5558 19.462 20.7566 20.1096 20.109C20.7573 19.4613 21.5564 18.9857 22.4346 18.7252C23.3127 18.4647 24.2419 18.4276 25.138 18.6174L28.626 15.1314C27.1983 14.3853 25.6109 13.9969 24 13.9994Z\" />,\n 'eye-hidden'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M28 3H11.2C8.89 3 7 4.89 7 7.2V40.8C7 43.11 8.89 45 11.2 45H36.4C38.71 45 40.6 43.11 40.6 40.8V15.6L28 3ZM32.2 28.2H15.4V24H32.2V28.2ZM28 36.6H15.4V32.4H28V36.6ZM25.9 17.7V6.15L37.45 17.7H25.9Z\" />,\n 'file'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M47.1238 24.9743L30.0828 42.0153C29.9183 42.1798 29.7538 42.2345 29.5347 42.2345L20.439 42.2892C20.2198 42.2892 20.0007 42.1794 19.8909 42.07L2.46615 24.6453C2.19227 24.3163 2.19227 23.878 2.46615 23.5494L19.5072 6.50835C19.6716 6.39861 19.8361 6.28918 20.0553 6.28918H29.151C29.3701 6.28918 29.5893 6.39893 29.699 6.50835L47.1238 23.9331C47.3977 24.207 47.3977 24.7004 47.1238 24.9743ZM26.7404 8.75536H22.4664L24.6034 10.8376L26.7404 8.75536ZM26.6856 35.9877L29.6993 39.0013L43.0142 25.6864H36.9868L26.6856 35.9877ZM26.3567 12.5909L36.9873 23.2214H43.0146L29.316 9.5775L26.3567 12.5909ZM14.7955 24.0974L24.9876 34.234L34.796 24.4803L24.6039 14.2882L14.7955 24.0966V24.0974ZM6.57646 22.8918H12.6038L22.9053 12.5903L19.8917 9.57667L6.57646 22.8918ZM22.8501 39.8235H27.124L24.987 37.6865L22.8501 39.8235ZM23.2337 35.9879L12.6031 25.3026H6.57579L20.2744 39.0013L23.2337 35.9879Z\"\n />,\n 'geometry'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M42.6828 5.6148L42.5207 4.96648L41.528 4.70622C33.7709 2.68064 25.7098 5.11467 20.3685 10.6909H10.7332C8.83556 10.6909 7.1495 11.9031 6.55002 13.706L4.11461 21.0145C4.03967 21.2393 4 21.4751 4 21.7109C4 22.9275 4.98739 23.9149 6.20399 23.9149H12.3727L9.61076 29.0618C9.15257 29.919 9.30842 30.9756 9.9957 31.6629L15.4924 37.1595C16.1781 37.8453 17.2332 38.0027 18.0872 37.5445L21.8811 35.5186V41.796C21.8811 43.0126 22.8685 44 24.0851 44C24.3209 44 24.5567 43.9603 24.7815 43.8853L32.09 41.4499C33.8928 40.8505 35.105 39.1644 35.105 37.2668V28.0389C41.6995 22.7685 44.7816 14.041 42.6828 5.6148ZM29.9112 11.0585C31.6333 9.3364 34.423 9.3364 36.1451 11.0585C37.8656 12.779 37.8672 15.5702 36.1451 17.2923C34.423 19.0144 31.6318 19.0129 29.9112 17.2923C28.1891 15.5702 28.1891 12.7806 29.9112 11.0585Z\"\n />,\n 'launch'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M28.9931 33.2331C25.6991 35.4718 21.6885 36.4013 17.7455 35.8402C13.8024 35.279 10.2105 33.2674 7.67177 30.1986C5.13306 27.1298 3.83016 23.2245 4.01778 19.2462C4.20539 15.2679 5.87004 11.5025 8.68627 8.68627C11.5025 5.87004 15.2679 4.20539 19.2462 4.01778C23.2245 3.83016 27.1298 5.13306 30.1986 7.67177C33.2674 10.2105 35.279 13.8024 35.8402 17.7455C36.4013 21.6885 35.4718 25.6991 33.2331 28.9931L33.4251 29.1831L43.121 38.8771C43.6838 39.4399 44 40.2032 44 40.9991C44 41.795 43.6838 42.5583 43.121 43.121C42.5583 43.6838 41.795 44 40.9991 44C40.2032 44 39.4399 43.6838 38.8771 43.121L28.9991 33.2391L28.9931 33.2331ZM19.9992 9.99928C17.3471 9.99928 14.8035 11.0528 12.9282 12.9282C11.0528 14.8035 9.99928 17.3471 9.99928 19.9992C9.99928 22.6514 11.0528 25.1949 12.9282 27.0702C14.8035 28.9456 17.3471 29.9991 19.9992 29.9991C22.6514 29.9991 25.1949 28.9456 27.0702 27.0702C28.9456 25.1949 29.9991 22.6514 29.9991 19.9992C29.9991 17.3471 28.9456 14.8035 27.0702 12.9282C25.1949 11.0528 22.6514 9.99928 19.9992 9.99928Z\" />,\n 'magnifying-glass'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <g>\n <path d=\"M31.2727 24.3636C35.2894 24.3636 38.5455 21.1075 38.5455 17.0909C38.5455 13.0743 35.2894 9.81818 31.2727 9.81818C27.2561 9.81818 24 13.0743 24 17.0909C24 21.1075 27.2561 24.3636 31.2727 24.3636Z\" />\n <path d=\"M15.8182 20.7273C19.3327 20.7273 22.1818 17.8782 22.1818 14.3636C22.1818 10.8491 19.3327 8 15.8182 8C12.3036 8 9.45454 10.8491 9.45454 14.3636C9.45454 17.8782 12.3036 20.7273 15.8182 20.7273Z\" />\n <path d=\"M24.9091 28H37.6364C39.3241 28 40.9427 28.6705 42.1362 29.8639C43.3296 31.0573 44 32.6759 44 34.3636V38.9091C44 39.3913 43.8085 39.8538 43.4675 40.1947C43.1265 40.5357 42.664 40.7273 42.1818 40.7273H20.3637C19.8814 40.7273 19.419 40.5357 19.078 40.1947C18.737 39.8538 18.5455 39.3913 18.5455 38.9091V34.3636C18.5455 32.6759 19.2159 31.0573 20.4093 29.8639C21.6028 28.6705 23.2214 28 24.9091 28Z\" />\n <path d=\"M17.9691 26.8618C17.073 27.7101 16.3596 28.7323 15.8725 29.8659C15.3854 30.9996 15.1349 32.2207 15.1364 33.4546V37.0909H5.81818C5.33597 37.0909 4.87351 36.8994 4.53253 36.5584C4.19156 36.2174 4 35.755 4 35.2727V30.7273C4 29.0395 4.67045 27.4209 5.86387 26.2275C7.05728 25.0341 8.6759 24.3636 10.3636 24.3636H16.9745C17.2641 24.3638 17.547 24.4507 17.7866 24.6133C18.0262 24.7759 18.2115 25.0066 18.3186 25.2756C18.4257 25.5446 18.4497 25.8396 18.3874 26.1224C18.3251 26.4052 18.1794 26.6627 17.9691 26.8618Z\" />\n </g>,\n 'members'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M34.948 30.7043C32.3135 30.7043 29.9318 30.3115 27.8028 29.5259C25.6737 28.7402 23.8574 27.6153 22.3538 26.1509C20.8439 24.6802 19.6878 22.9079 18.8854 20.8339C18.0831 18.7536 17.6819 16.4031 17.6819 13.7823C17.6819 12.9967 17.7356 12.1671 17.843 11.2935C17.9504 10.4199 18.0989 9.58713 18.2884 8.79524C18.4779 8.00335 18.6991 7.33087 18.9518 6.7778C19.0844 6.50755 19.1792 6.2593 19.2361 6.03304C19.2866 5.80679 19.3119 5.60567 19.3119 5.4297C19.3119 5.07775 19.1887 4.7635 18.9423 4.48697C18.6959 4.20415 18.3484 4.06274 17.8999 4.06274C17.7356 4.06274 17.5271 4.08474 17.2744 4.12873C17.0217 4.17273 16.7596 4.24186 16.4879 4.33614C13.9609 5.36057 11.7465 6.85322 9.84492 8.8141C7.94332 10.775 6.465 13.0407 5.40996 15.6112C4.35491 18.1817 3.82739 20.8716 3.82739 23.6809C3.82739 26.6348 4.3486 29.353 5.391 31.8355C6.43341 34.3181 7.8991 36.4738 9.78807 38.3027C11.6707 40.1316 13.8819 41.5488 16.4216 42.5544C18.9549 43.56 21.7031 44.0627 24.6661 44.0627C26.8077 44.0627 28.8578 43.7611 30.8163 43.1577C32.7747 42.5544 34.5847 41.7122 36.2463 40.6312C37.9078 39.5502 39.3577 38.2807 40.5959 36.8226C41.8342 35.3582 42.8008 33.7776 43.4957 32.0807C43.6158 31.7664 43.701 31.4773 43.7516 31.2133C43.8021 30.9494 43.8274 30.7357 43.8274 30.5723C43.8274 30.1512 43.6947 29.815 43.4294 29.5636C43.164 29.3122 42.8545 29.1865 42.5007 29.1865C42.1027 29.1865 41.6478 29.2996 41.1361 29.5259C40.3969 29.8087 39.4588 30.0538 38.3216 30.2612C37.1781 30.4686 36.0093 30.5723 34.8153 30.5723L34.948 30.7043Z\" />,\n 'moon'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M43 8C43 5.79 41.21 4 39 4H13C10.79 4 9 5.79 9 8V10H7C5.896 10 5 10.896 5 12V16C5 17.104 5.896 18 7 18H9V30H7C5.896 30 5 30.896 5 32V36C5 37.104 5.896 38 7 38H9V40C9 42.21 10.79 44 13 44H39C41.21 44 43 42.21 43 40V8ZM31.728 16.726C32.372 16.082 33.382 16.03 34.088 16.566L34.272 16.728L40.272 22.728C40.918 23.372 40.972 24.382 40.432 25.088L40.272 25.272L34.272 31.272C33.568 31.976 32.43 31.976 31.728 31.272C31.082 30.628 31.028 29.618 31.568 28.912L31.728 28.728L36.454 24L31.728 19.272C31.082 18.628 31.028 17.618 31.568 16.912L31.728 16.726ZM18.128 16.726C18.832 16.026 19.97 16.026 20.672 16.726V16.728C21.318 17.372 21.372 18.382 20.832 19.088L20.672 19.272L15.946 24L20.672 28.728C21.318 29.372 21.372 30.382 20.832 31.088L20.672 31.272C20.028 31.918 19.018 31.972 18.312 31.432L18.128 31.272L12.128 25.272C11.482 24.628 11.428 23.618 11.968 22.912L12.128 22.726L18.128 16.726ZM28.636 14.2539C27.674 14.0119 26.694 14.5999 26.454 15.5639H26.452L22.452 31.5639L22.412 31.7859C22.304 32.6739 22.874 33.5239 23.764 33.7459C24.728 33.9879 25.706 33.3999 25.948 32.4359L29.948 16.4359L29.988 16.2139C30.096 15.3259 29.526 14.4759 28.636 14.2539Z\"\n />,\n 'notebook'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M24.0631 44C24.6413 44 25.1646 43.8556 25.633 43.5669C26.1015 43.2781 26.482 42.9063 26.7748 42.4515C27.0602 41.9968 27.203 41.5059 27.203 40.9789V27.1077H40.926C41.475 27.1077 41.9836 26.967 42.452 26.6854C42.9205 26.4039 43.2974 26.0285 43.5828 25.5593C43.8609 25.0901 44 24.5703 44 24C44 23.4369 43.8573 22.9244 43.5718 22.4624C43.2864 21.9931 42.9058 21.6142 42.4301 21.3254C41.9543 21.0366 41.442 20.8923 40.8931 20.8923H27.159V7.04278C27.159 6.49414 27.0127 5.99243 26.7199 5.53763C26.4272 5.07562 26.0429 4.70384 25.5672 4.42231C25.0914 4.14077 24.5645 4 23.9863 4C23.43 4 22.914 4.13716 22.4383 4.41148C21.9553 4.6858 21.571 5.05396 21.2856 5.51597C21.0001 5.97076 20.8574 6.46888 20.8574 7.01029V20.8489H7.10141C6.55981 20.8489 6.05663 20.9897 5.59188 21.2713C5.11614 21.5528 4.7319 21.9282 4.43914 22.3974C4.14638 22.8594 4 23.3683 4 23.9242C4 24.4945 4.14272 25.0106 4.42816 25.4727C4.7136 25.9347 5.09419 26.3064 5.56992 26.588C6.03833 26.8623 6.54151 26.9995 7.07946 26.9995H20.8245V40.8598C20.8245 41.3868 20.9635 41.874 21.2417 42.3216C21.5198 42.7692 21.9004 43.1373 22.3834 43.4261C22.8592 43.7076 23.3715 43.8484 23.9204 43.8484L24.0631 44Z\" />,\n 'plus'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24.8861 3.78918C25.5423 3.78918 26.1567 4.11095 26.5304 4.6507L44.5305 30.6505C44.8519 31.1149 44.9621 31.6931 44.8338 32.2432C44.7059 32.793 44.351 33.263 43.8575 33.5373L25.8574 43.5376C25.2534 43.8731 24.5188 43.8731 23.9148 43.5376L5.91476 33.5373C5.42123 33.2631 5.06666 32.793 4.93838 32.2432C4.81015 31.6931 4.9203 31.1149 5.24174 30.6505L23.2418 4.6507C23.6154 4.11097 24.2298 3.78918 24.8861 3.78918ZM9.78664 31.1124L22.8855 38.3897V12.1911L9.78664 31.1124ZM26.8858 12.1909V38.3895L39.9847 31.1122L26.8858 12.1909Z\"\n />,\n 'point-cloud'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M23.9904 44C26.7323 44 29.3085 43.4801 31.7188 42.4402C34.1291 41.4003 36.2557 39.9617 38.0985 38.1244C39.9413 36.2871 41.3856 34.1595 42.4314 31.7416C43.4771 29.3238 44 26.7432 44 24C44 21.2695 43.4771 18.6954 42.4314 16.2775C41.3856 13.8596 39.9413 11.7321 38.0985 9.89473C36.2557 8.05742 34.1259 6.61563 31.7092 5.56938C29.2925 4.52313 26.7132 4 23.9713 4C21.2422 4 18.6692 4.52313 16.2525 5.56938C13.8358 6.61563 11.7092 8.05742 9.87279 9.89473C8.03635 11.7321 6.59844 13.8596 5.55907 16.2775C4.51969 18.6954 4 21.2695 4 24C4 26.7432 4.51969 29.3238 5.55907 31.7416C6.59844 34.1595 8.03954 36.2871 9.88236 38.1244C11.7252 39.9617 13.8517 41.4003 16.2621 42.4402C18.6724 43.4801 21.2485 44 23.9904 44ZM23.5887 27.8469C22.1349 27.8469 21.4079 27.2345 21.4079 26.0096C21.4079 25.9713 21.4079 25.9362 21.4079 25.9043C21.4079 25.8724 21.4079 25.8437 21.4079 25.8182C21.4079 24.9761 21.6343 24.2775 22.087 23.7225C22.5398 23.1675 23.1168 22.6475 23.8183 22.1627C24.6472 21.6013 25.2721 21.1133 25.693 20.6986C26.1138 20.2839 26.3242 19.7895 26.3242 19.2153C26.3242 18.6284 26.1138 18.1499 25.693 17.7799C25.2721 17.4099 24.711 17.2249 24.0096 17.2249C23.4739 17.2249 23.0053 17.3493 22.6035 17.5981C22.2018 17.8469 21.8479 18.201 21.5419 18.6603C21.2613 18.9793 20.9903 19.2664 20.7289 19.5215C20.4674 19.7767 20.037 19.9043 19.4376 19.9043C18.8637 19.9043 18.3982 19.7416 18.0411 19.4163C17.6841 19.0909 17.5055 18.6731 17.5055 18.1627C17.5055 17.9713 17.5215 17.7863 17.5533 17.6077C17.5852 17.429 17.633 17.2504 17.6968 17.0718C18.0284 16.1021 18.7681 15.2887 19.9158 14.6316C21.0636 13.9745 22.4983 13.6459 24.22 13.6459C25.457 13.6459 26.5857 13.8597 27.6059 14.2871C28.6262 14.7145 29.4392 15.327 30.045 16.1244C30.6507 16.9219 30.9536 17.8756 30.9536 18.9856C30.9536 20.1212 30.6762 21.0239 30.1215 21.6938C29.5667 22.3636 28.7856 23.0303 27.7781 23.6938C27.1659 24.1021 26.6781 24.488 26.3147 24.8517C25.9512 25.2153 25.7376 25.6396 25.6738 26.1244C25.6738 26.1627 25.6707 26.201 25.6643 26.2392C25.6579 26.2775 25.6547 26.3158 25.6547 26.3541C25.5782 26.7751 25.3614 27.1292 25.0043 27.4163C24.6472 27.7033 24.1754 27.8469 23.5887 27.8469L23.5887 27.8469ZM23.6652 33.8947C22.9638 33.8947 22.3772 33.6874 21.9053 33.2727C21.4334 32.8581 21.1975 32.3126 21.1975 31.6364C21.1975 30.9601 21.4334 30.4147 21.9053 30C22.3772 29.5853 22.9638 29.378 23.6652 29.378C24.3666 29.378 24.9565 29.5853 25.4347 30C25.913 30.4147 26.1521 30.9601 26.1521 31.6364C26.1521 32.3254 25.9161 32.874 25.4443 33.2823C24.9724 33.6906 24.3794 33.8948 23.6652 33.8948L23.6652 33.8947Z\" />,\n 'questionmark-filled'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M12.9446 12.5906H35.8816V35.7486H12.9446V12.5906Z\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.41309 44.1692V4.16919H44.4131V44.1692H4.41309ZM8.67938 39.9584H40.1468V8.37994H8.67938V39.9584Z\"\n />\n </>,\n 'raster'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24.1139 4.07214C35.1519 4.07214 44.1139 13.034 44.1139 24.0721C44.1139 35.1102 35.1519 44.0721 24.1139 44.0721C13.0748 44.0721 4.11389 35.1102 4.11389 24.0721C4.11389 13.0331 13.0748 4.07214 24.1139 4.07214ZM24.1139 14.0721C29.6324 14.0721 34.114 18.5526 34.114 24.0722C34.114 29.5908 29.6325 34.0723 24.1139 34.0723C18.5944 34.0723 14.1138 29.5909 14.1138 24.0722C14.1138 18.5527 18.5943 14.0721 24.1139 14.0721Z\"\n />,\n 'soma'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M26.1271 4.27897C27.2225 4.27897 28.1187 5.15572 28.1187 6.2716V8.76238C29.5806 9.14098 30.9468 9.71884 32.2294 10.4561L33.9821 8.68267C34.7588 7.88562 36.0135 7.88562 36.7903 8.68267L39.5985 11.4923C40.3752 12.2694 40.3752 13.5248 39.5985 14.3019L37.8259 16.0554C38.5628 17.3108 39.1404 18.7056 39.5188 20.1602L42.0084 20.1403C43.1038 20.1403 44 21.017 44 22.1329V26.1182C44 27.2141 43.1038 28.1108 42.0084 28.1108H39.4989C39.1205 29.5455 38.5429 30.9204 37.7861 32.2236L39.5387 33.9771C40.3155 34.7542 40.3155 36.0096 39.5387 36.7867L36.7106 39.5963C35.914 40.3734 34.6592 40.3734 33.8825 39.5963L32.1099 37.8229C30.8154 38.5801 29.4411 39.138 27.9992 39.5166V42.0074C27.9992 43.1033 27.103 44 26.0076 44H22.0243C20.909 44 20.0327 43.1033 20.0327 42.0074V39.4967C18.5788 39.1181 17.2045 38.5402 15.91 37.783L14.1374 39.5365H14.1175C13.3209 40.3136 12.0661 40.3136 11.2894 39.5365L8.46126 36.707C7.66461 35.9099 7.66461 34.6546 8.45927 33.8775L10.2119 32.104C9.43517 30.8088 8.87751 29.4339 8.4991 27.9912H5.99164C4.87632 27.9912 4 27.0946 4 25.9986V22.0134C4 20.8975 4.87632 20.0207 5.99164 20.0207H8.48118C8.83967 18.5581 9.43716 17.1713 10.1741 15.9079L8.40151 14.1345C7.60486 13.3375 7.60486 12.0821 8.40151 11.305L11.2097 8.46348C11.9865 7.66643 13.2412 7.66643 14.0179 8.46348L15.7706 10.217C17.0452 9.43987 18.4194 8.88194 19.8733 8.50334L19.8534 5.99263C19.8534 4.87676 20.7297 4 21.845 4H25.8283L26.1271 4.27897ZM24.1354 16.2347C19.7339 16.2347 16.1689 19.8015 16.1689 24.2052C16.1689 28.589 19.7339 32.1758 24.1354 32.1758C28.517 32.1758 32.102 28.589 32.102 24.2052C32.102 19.8015 28.517 16.2347 24.1354 16.2347Z\" />,\n 'settings'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M27.0112 43.9766C27.2743 43.9766 27.4998 43.8853 27.6878 43.7027C27.8757 43.5201 27.9939 43.2919 28.0422 43.018C28.2946 41.1601 28.5738 39.5894 28.8799 38.306C29.1806 37.0226 29.5807 35.9647 30.0801 35.1324C30.5741 34.3001 31.2292 33.6315 32.0454 33.1268C32.8616 32.622 33.898 32.2246 35.1546 31.9347C36.4111 31.6447 37.9603 31.395 39.8022 31.1856C40.0868 31.148 40.3204 31.0325 40.5029 30.8392C40.6801 30.6405 40.7687 30.4096 40.7687 30.1465C40.7687 29.8673 40.6775 29.631 40.4949 29.4377C40.3123 29.2444 40.076 29.1236 39.7861 29.0752C37.9496 28.8551 36.4084 28.6 35.1626 28.31C33.9114 28.0201 32.8804 27.6281 32.0696 27.134C31.2534 26.64 30.5983 25.9822 30.1042 25.1606C29.6048 24.3337 29.1967 23.2785 28.8799 21.9951C28.5577 20.7117 28.2597 19.1303 27.9858 17.2508C27.9375 16.9716 27.8167 16.7461 27.6234 16.5742C27.43 16.397 27.2018 16.3084 26.9387 16.3084C26.6702 16.3084 26.442 16.3943 26.254 16.5662C26.0607 16.738 25.9399 16.9609 25.8916 17.2347C25.6338 19.1034 25.3519 20.6768 25.0458 21.9548C24.7397 23.2328 24.337 24.288 23.8376 25.1203C23.3382 25.9473 22.6804 26.6132 21.8642 27.1179C21.0426 27.6173 20.0035 28.0093 18.747 28.2939C17.4851 28.5732 15.9332 28.8175 14.0913 29.0269C13.8014 29.0699 13.5624 29.188 13.3745 29.3813C13.1865 29.5693 13.0925 29.8028 13.0925 30.0821C13.0925 30.3452 13.1838 30.5734 13.3664 30.7667C13.549 30.9601 13.7853 31.0728 14.0752 31.105C15.8956 31.3574 17.4287 31.6313 18.6745 31.9266C19.9203 32.2166 20.9486 32.6086 21.7595 33.1026C22.5703 33.5913 23.2228 34.241 23.7168 35.0519C24.2108 35.8627 24.6189 36.9045 24.9411 38.1771C25.2633 39.4498 25.5613 41.0205 25.8352 42.8892C25.8782 43.163 25.9963 43.3886 26.1896 43.5658C26.3776 43.743 26.6031 43.8316 26.8662 43.8316L27.0112 43.9766ZM14.8082 24.8868C15.0015 24.8868 15.1626 24.825 15.2915 24.7015C15.415 24.578 15.4875 24.4249 15.509 24.2424C15.654 23.1093 15.8043 22.2233 15.96 21.5843C16.1158 20.9399 16.3601 20.4539 16.693 20.1264C17.026 19.7934 17.5254 19.5411 18.1912 19.3692C18.8571 19.192 19.7914 18.988 20.9943 18.7571C21.4078 18.6712 21.6145 18.4322 21.6145 18.0402C21.6145 17.8415 21.5527 17.6777 21.4292 17.5489C21.3057 17.42 21.1527 17.3367 20.9701 17.2992C19.778 17.1488 18.849 16.9877 18.1832 16.8159C17.5119 16.644 17.0098 16.3943 16.6769 16.0668C16.3386 15.7338 16.0916 15.2398 15.9359 14.5847C15.7748 13.9242 15.6217 13.0113 15.4768 11.8461C15.4284 11.4057 15.1895 11.1856 14.7599 11.1856C14.3303 11.1856 14.0913 11.4084 14.043 11.8541C13.9034 12.9925 13.7557 13.8759 13.6 14.5042C13.4389 15.1324 13.1892 15.6077 12.8509 15.9298C12.5072 16.252 11.9971 16.5017 11.3205 16.6789C10.6439 16.8561 9.71223 17.0468 8.52549 17.2508C8.10664 17.3314 7.89722 17.573 7.89722 17.9758C7.89722 18.3785 8.13349 18.6148 8.60604 18.6846C9.76592 18.8671 10.6815 19.0417 11.3527 19.2081C12.0186 19.3746 12.5153 19.6243 12.8428 19.9572C13.1704 20.2902 13.4121 20.7788 13.5678 21.4232C13.7235 22.0676 13.8685 22.9617 14.0027 24.1054C14.0457 24.5511 14.282 24.774 14.7116 24.774L14.8082 24.8868ZM23.2174 12.6113C23.4698 12.6113 23.6174 12.4824 23.6604 12.2246C23.7732 11.5051 23.8806 10.9466 23.9826 10.5493C24.0846 10.1465 24.235 9.84312 24.4337 9.63907C24.6323 9.42964 24.9384 9.26586 25.3519 9.14773C25.7654 9.02959 26.34 8.89534 27.0756 8.74499C27.3388 8.68592 27.4703 8.53556 27.4703 8.29392C27.4703 8.03616 27.3361 7.88581 27.0676 7.84285C26.3158 7.71397 25.7385 7.59315 25.3358 7.48039C24.9277 7.36762 24.6243 7.20653 24.4256 6.9971C24.2216 6.78768 24.0685 6.47891 23.9665 6.0708C23.8591 5.65732 23.7436 5.09349 23.6201 4.3793C23.5718 4.11081 23.4214 3.97656 23.1691 3.97656C22.9113 3.97656 22.761 4.11349 22.718 4.38735C22.5891 5.07469 22.4737 5.61973 22.3716 6.02247C22.2642 6.41984 22.1139 6.72055 21.9206 6.92461C21.7219 7.12866 21.4185 7.28975 21.0104 7.40789C20.5969 7.52066 20.017 7.65222 19.2706 7.80258C19.0021 7.85628 18.8678 8.00395 18.8678 8.24559C18.8678 8.48723 19.0047 8.63491 19.2786 8.6886C20.017 8.82285 20.5889 8.94904 20.9943 9.06718C21.4024 9.17995 21.7085 9.34104 21.9125 9.55046C22.1166 9.75452 22.2669 10.0552 22.3636 10.4526C22.4602 10.85 22.565 11.4057 22.6777 12.1199C22.7207 12.3831 22.8684 12.5146 23.1207 12.5146L23.2174 12.6113Z\" />,\n 'sparkles'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M16 8H10C9.46957 8 8.96087 8.21071 8.58579 8.58579C8.21072 8.96086 8.00001 9.46957 8.00001 10V14C8.00001 14.5304 8.21072 15.0391 8.58579 15.4142C8.96087 15.7893 9.46957 16 10 16H14C14.5304 16 15.0391 15.7893 15.4142 15.4142C15.7893 15.0391 16 14.5304 16 14V8ZM10.02 20V39.93H14V30C14 28.9391 14.4214 27.9217 15.1716 27.1716C15.9217 26.4214 16.9391 26 18 26H22C23.0609 26 24.0783 26.4214 24.8284 27.1716C25.5786 27.9217 26 28.9391 26 30V39.93H38.026V20H34C32.464 20 31.06 19.422 30 18.472C28.9011 19.4578 27.4763 20.002 26 20H22C20.464 20 19.06 19.422 18 18.472C16.9011 19.4578 15.4763 20.002 14 20H10.02ZM6.02001 18.492C5.38395 17.9294 4.87488 17.2379 4.5266 16.4634C4.17833 15.6889 3.99882 14.8492 4.00001 14V10C4.00001 8.4087 4.63215 6.88258 5.75737 5.75736C6.88258 4.63214 8.40871 4 10 4H38C39.5913 4 41.1174 4.63214 42.2426 5.75736C43.3679 6.88258 44 8.4087 44 10V14C44 15.764 43.24 17.352 42.026 18.45V39.93C42.026 40.9909 41.6046 42.0083 40.8544 42.7584C40.1043 43.5086 39.0869 43.93 38.026 43.93H22.746C22.5001 43.9765 22.2503 43.9999 22 44H18C17.7497 43.9999 17.5 43.9765 17.254 43.93H10.022C8.96114 43.93 7.94372 43.5086 7.19358 42.7584C6.44343 42.0083 6.02201 40.9909 6.02201 39.93V18.49L6.02001 18.492ZM22 39.932V30H18V39.93H22V39.932ZM28 8H20V14C20 14.5304 20.2107 15.0391 20.5858 15.4142C20.9609 15.7893 21.4696 16 22 16H26C26.5304 16 27.0391 15.7893 27.4142 15.4142C27.7893 15.0391 28 14.5304 28 14V8ZM32 8V14C32 14.5304 32.2107 15.0391 32.5858 15.4142C32.9609 15.7893 33.4696 16 34 16H38C38.5304 16 39.0392 15.7893 39.4142 15.4142C39.7893 15.0391 40 14.5304 40 14V10C40 9.46957 39.7893 8.96086 39.4142 8.58579C39.0392 8.21071 38.5304 8 38 8H32ZM32 26H34C34.5304 26 35.0391 26.2107 35.4142 26.5858C35.7893 26.9609 36 27.4696 36 28V34C36 34.5304 35.7893 35.0391 35.4142 35.4142C35.0391 35.7893 34.5304 36 34 36H32C31.4696 36 30.9609 35.7893 30.5858 35.4142C30.2107 35.0391 30 34.5304 30 34V28C30 27.4696 30.2107 26.9609 30.5858 26.5858C30.9609 26.2107 31.4696 26 32 26Z\" />,\n 'store'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M26.0469 5.98084C26.0469 5.44284 25.8539 4.97819 25.468 4.58691C25.082 4.19563 24.6146 4 24.0656 4C23.5384 4 23.0791 4.19292 22.6877 4.57876C22.2963 4.96461 22.1007 5.42653 22.1007 5.96454V9.42898C22.1007 9.96155 22.2936 10.4208 22.6796 10.8066C23.0655 11.187 23.5221 11.3772 24.0493 11.3772C24.5929 11.3772 25.0576 11.1843 25.4435 10.7984C25.824 10.4126 26.0142 9.95068 26.0142 9.41268L26.0469 5.98084ZM26.0469 38.6036C26.0469 38.0548 25.8539 37.5874 25.468 37.2015C25.082 36.8157 24.6146 36.6228 24.0656 36.6228C23.5384 36.6228 23.0791 36.813 22.6877 37.1934C22.2963 37.5738 22.1007 38.0384 22.1007 38.5873V42.0355C22.1007 42.568 22.2936 43.03 22.6796 43.4212C23.0655 43.8071 23.5221 44 24.0493 44C24.5929 44 25.0576 43.8044 25.4435 43.4131C25.824 43.0218 26.0142 42.5572 26.0142 42.0192L26.0469 38.6036ZM42.1088 25.9686C42.6415 25.9686 43.1035 25.7757 43.4949 25.3899C43.8808 25.004 44.0738 24.5421 44.0738 24.0041C44.0738 23.4769 43.8781 23.0177 43.4867 22.6265C43.0954 22.2352 42.6306 22.0395 42.0925 22.0395H38.6355C38.0974 22.0395 37.6354 22.2325 37.2495 22.6183C36.8635 23.0041 36.6706 23.4606 36.6706 23.9878C36.6706 24.5203 36.8608 24.9796 37.2413 25.3654C37.6218 25.7458 38.0811 25.936 38.6192 25.936L42.1088 25.9686ZM6.0387 22.0395C5.51146 22.0395 5.05215 22.2325 4.6608 22.6183C4.26944 23.0041 4.07376 23.4606 4.07376 23.9878C4.07376 24.5203 4.26672 24.9796 4.65264 25.3654C5.03857 25.7458 5.49515 25.936 6.0224 25.936H9.47123C10.0039 25.936 10.4659 25.7431 10.8573 25.3572C11.2432 24.9714 11.4362 24.5095 11.4362 23.9715C11.4362 23.4443 11.2405 22.9851 10.8491 22.5938C10.4578 22.2026 9.99304 22.0069 9.45493 22.0069L6.0387 22.0395ZM12.3575 15.1188C12.738 15.4883 13.2027 15.6758 13.7517 15.6813C14.2953 15.6867 14.7546 15.5019 15.1296 15.127C15.4992 14.752 15.6868 14.2873 15.6922 13.733C15.6976 13.1733 15.5183 12.7086 15.1541 12.3391L12.6999 9.86916C12.3249 9.50506 11.8629 9.31757 11.3139 9.3067C10.7649 9.2904 10.2974 9.46974 9.91151 9.84471C9.53646 10.2143 9.34622 10.6789 9.34078 11.2386C9.32991 11.7984 9.50656 12.2576 9.87074 12.6163L12.3575 15.1188ZM32.9527 12.3473C32.5776 12.7168 32.3928 13.1787 32.3983 13.733C32.4037 14.2873 32.5967 14.7493 32.9771 15.1188C33.3359 15.4883 33.7925 15.6731 34.3469 15.6731C34.9013 15.6731 35.3688 15.4802 35.7493 15.0943L38.1952 12.6244C38.554 12.2603 38.7334 11.7984 38.7334 11.2386C38.7334 10.6735 38.5458 10.2061 38.1708 9.83656C37.7957 9.46158 37.3337 9.27681 36.7847 9.28225C36.2357 9.28768 35.7737 9.47517 35.3987 9.84471L32.9527 12.3473ZM35.733 32.8649C35.3579 32.4899 34.8959 32.3051 34.3469 32.3106C33.7979 32.316 33.3305 32.5035 32.9445 32.873C32.5695 33.2426 32.3847 33.7045 32.3901 34.2588C32.3955 34.8131 32.5885 35.275 32.969 35.6446L35.4557 38.1064C35.8145 38.465 36.2684 38.6417 36.8173 38.6362C37.3609 38.6254 37.8202 38.4352 38.1952 38.0656C38.5649 37.6906 38.7497 37.226 38.7497 36.6717C38.7497 36.112 38.5567 35.6473 38.1708 35.2778L35.733 32.8649ZM9.91151 35.2941C9.52559 35.6745 9.33263 36.1391 9.33263 36.688C9.33263 37.2314 9.512 37.6906 9.87074 38.0656C10.2404 38.4352 10.7051 38.6254 11.265 38.6362C11.8248 38.6471 12.2841 38.465 12.6429 38.0901L15.1052 35.6364C15.4748 35.2615 15.6623 34.7968 15.6677 34.2425C15.6732 33.6828 15.4938 33.2181 15.1296 32.8486C14.7437 32.4736 14.2735 32.2834 13.7191 32.278C13.1592 32.2671 12.6945 32.4492 12.3249 32.8241L9.91151 35.2941ZM24.0411 14.5156C22.7421 14.5156 21.5245 14.7629 20.3885 15.2574C19.247 15.7519 18.2414 16.4312 17.3718 17.2953C16.4966 18.1539 15.8145 19.1566 15.3253 20.3032C14.8307 21.4445 14.5833 22.6645 14.5833 23.9633C14.5833 25.2567 14.8279 26.4767 15.3171 27.6234C15.8063 28.7646 16.4858 29.77 17.3555 30.6395C18.2251 31.509 19.228 32.191 20.364 32.6855C21.5 33.1801 22.7149 33.4273 24.0085 33.4273C25.3022 33.4273 26.5225 33.1774 27.6694 32.6774C28.8108 32.1774 29.8137 31.4927 30.6779 30.6232C31.5367 29.7482 32.2162 28.7402 32.7162 27.5989C33.2109 26.4523 33.4582 25.2295 33.4582 23.9307C33.4582 22.6319 33.2082 21.4091 32.7081 20.2625C32.208 19.1158 31.5259 18.1105 30.6616 17.2464C29.7974 16.3823 28.7918 15.7003 27.6449 15.2003C26.498 14.7004 25.275 14.4504 23.9759 14.4504L24.0411 14.5156Z\" />,\n 'sun'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M26.1054 6C16.8423 6 9.1791 13.0735 8.29489 22.1263H5.76842C4.80007 22.1263 4 22.9264 4 23.8947C4 24.8631 4.80007 25.6632 5.76842 25.6632H19.4105C20.0843 25.6632 20.6738 25.2843 20.9683 24.6948L22.4422 21.8318L26.9473 30.5476C27.2422 31.1371 27.8317 31.5159 28.5051 31.5159C29.1789 31.5159 29.7683 31.1371 30.0629 30.5476L32.5894 25.6213H35.1159C36.0842 25.6213 36.8843 24.8212 36.8843 23.8529C36.8843 22.8845 36.0842 22.0844 35.1159 22.0844H31.5368C30.863 22.0844 30.2735 22.4633 29.9789 23.0528L28.5051 25.9158L24 17.2421C23.4105 16.0632 21.4735 16.0632 20.8841 17.2421L18.3577 22.1684H11.8316C12.7159 15.0526 18.7788 9.53684 26.1053 9.53684C34.0211 9.53684 40.5053 15.9789 40.5053 23.9368C40.5053 31.8947 34.0212 38.2947 26.1053 38.2947C20.1263 38.2947 14.9474 34.5894 12.8 29.3684H9.05263C11.3685 36.5683 18.1474 41.7895 26.1053 41.7895C35.9579 41.7895 44 33.7474 44 23.8947C44 14.0421 35.9579 6 26.1053 6H26.1054Z\" />,\n 'system-status'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M39.1545 12.8512C42.2717 12.8512 44.776 10.347 44.776 7.22967C44.776 4.11238 42.2718 1.60815 39.1545 1.60815C36.0371 1.60815 33.5329 4.11229 33.5329 7.22967C33.5329 8.60954 34.0441 9.83583 34.8105 10.8068L27.9632 18.1147C26.9921 17.297 25.7145 16.7861 24.3347 16.7861C22.9548 16.7861 21.7285 17.246 20.7576 18.0637L13.8585 11.6754C14.165 11.1133 14.3696 10.5002 14.3696 9.78472C14.3696 7.74079 12.6832 6.0543 10.6392 6.0543C8.59528 6.0543 6.90879 7.74069 6.90879 9.78472C6.90879 11.8287 8.59519 13.5152 10.6392 13.5152C11.457 13.5152 12.2233 13.2086 12.8878 12.7488L19.7869 19.1366C19.1225 20.0563 18.765 21.1806 18.765 22.3562C18.765 23.6848 19.2248 24.9114 19.9915 25.8824L12.3767 33.9564C11.4571 33.292 10.3328 32.8831 9.10613 32.8831C5.98885 32.8831 3.48462 35.3872 3.48462 38.5046C3.48462 41.6219 5.98876 44.1261 9.10613 44.1261C12.2234 44.1261 14.7276 41.6219 14.7276 38.5046C14.7276 37.176 14.2678 35.9494 13.5011 34.9784L21.0642 26.955C21.9329 27.6195 23.0572 27.977 24.2325 28.0284L25.2036 36.8184C23.3129 37.3806 21.933 39.0671 21.933 41.111C21.933 43.6151 23.926 45.6082 26.4301 45.6082C28.9343 45.6082 30.9273 43.6151 30.9273 41.111C30.9273 38.7092 29.0366 36.7671 26.6857 36.6138L25.7147 27.8754C26.7367 27.6198 27.7077 27.0577 28.4232 26.2913L35.4242 31.3506C35.2199 31.8104 35.0663 32.3217 35.0663 32.8838C35.0663 34.9277 36.7527 36.6142 38.7967 36.6142C40.8407 36.6142 42.5271 34.9278 42.5271 32.8838C42.5271 30.8398 40.8407 29.1534 38.7967 29.1534C37.8257 29.1534 36.957 29.5113 36.2926 30.1244L29.2919 25.0648C29.7008 24.2984 29.9564 23.3784 29.9564 22.4073C29.9564 21.232 29.5985 20.1587 28.9853 19.239L35.9353 11.8801C36.855 12.4932 37.9283 12.8511 39.1545 12.8511L39.1545 12.8512Z\" />,\n 'task-graph'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M33.68 18C34.231 18 34.7761 18.1139 35.2811 18.3345C35.7861 18.5552 36.24 18.8777 36.6144 19.282C36.9889 19.6863 37.2757 20.1636 37.457 20.684C37.6383 21.2043 37.7102 21.7566 37.668 22.306L36.284 40.306C36.2069 41.3109 35.7533 42.2496 35.0139 42.9345C34.2745 43.6194 33.3038 43.9999 32.296 44H15.704C14.6962 43.9999 13.7255 43.6194 12.9861 42.9345C12.2467 42.2496 11.7931 41.3109 11.716 40.306L10.332 22.306C10.2898 21.7566 10.3617 21.2043 10.543 20.684C10.7243 20.1636 11.0111 19.6863 11.3856 19.282C11.76 18.8777 12.2139 18.5552 12.7189 18.3345C13.2239 18.1139 13.769 18 14.32 18H33.68ZM26 4C27.0609 4 28.0783 4.42143 28.8284 5.17157C29.5786 5.92172 30 6.93913 30 8H37C37.7956 8 38.5587 8.31607 39.1213 8.87868C39.6839 9.44129 40 10.2044 40 11C40 11.7956 39.6839 12.5587 39.1213 13.1213C38.5587 13.6839 37.7956 14 37 14H11C10.2044 14 9.44129 13.6839 8.87868 13.1213C8.31607 12.5587 8 11.7956 8 11C8 10.2044 8.31607 9.44129 8.87868 8.87868C9.44129 8.31607 10.2044 8 11 8H18C18 6.93913 18.4214 5.92172 19.1716 5.17157C19.9217 4.42143 20.9391 4 22 4H26Z\" />,\n 'trash'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M22.5139 10.7205L15.9103 14.623L10.6334 11.579C9.55282 10.9778 8.88611 9.86019 8.88611 8.64991V5.87509C8.88611 4.47118 10.4661 3.60756 11.7003 4.33695L22.5139 10.7205ZM12.6428 43.8074L38.1626 28.7258C39.1987 28.1135 39.8311 27.0204 39.8311 25.8419V22.7985C39.8311 21.6195 39.198 20.5259 38.1612 19.9138L32.2725 16.404L25.652 20.3326L32.4722 24.373L11.5002 36.773C10.4195 37.3743 9.75282 38.4919 9.75282 39.7021L9.82863 42.2693C9.82863 43.6732 11.4086 44.5367 12.6428 43.8074ZM39.6421 6.10575L39.7192 8.64267C39.7192 9.83869 39.0412 10.9432 37.9422 11.5373L16.6139 23.7914L23.55 27.7842L16.817 31.6665L10.8282 28.1981C9.77377 27.5932 9.12998 26.5125 9.12998 25.3473V22.3397C9.12998 21.1751 9.77316 20.0949 10.8268 19.4898L36.7801 4.58579C38.0353 3.86499 39.6421 4.71836 39.6421 6.10575ZM37.603 43.5916C38.8582 44.3124 40.4651 43.459 40.4651 42.0715V39.3294C40.4651 38.1334 39.787 37.0289 38.6881 36.4347L33.3216 33.4265L26.6058 37.2832L37.603 43.5916Z\" />,\n 'vcf'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M21.5555 8.63711C22.9063 6.45169 25.0996 6.4569 26.4472 8.63711L43.1912 35.7269C44.9945 38.6445 43.6809 41.0096 40.259 41.0096H7.74375C4.32103 41.0096 3.0024 38.6539 4.81151 35.7269L21.5555 8.63711ZM24.0019 17.7218C23.1445 17.7218 22.4494 18.4252 22.4494 19.2697V28.594C22.4494 29.4489 23.1385 30.142 24.0019 30.142C24.8594 30.142 25.5545 29.4386 25.5545 28.594V19.2697C25.5545 18.4148 24.8653 17.7218 24.0019 17.7218ZM24.0019 36.352C24.8594 36.352 25.5545 35.6569 25.5545 34.7995C25.5545 33.9421 24.8594 33.247 24.0019 33.247C23.1445 33.247 22.4494 33.9421 22.4494 34.7995C22.4494 35.6569 23.1445 36.352 24.0019 36.352Z\"\n />,\n 'warning'\n);\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport classNames from 'classnames';\nimport reactNodeToString from 'react-node-to-string';\nimport './Text.scss';\n\ntype Variant =\n | 'display-1'\n | 'heading-1'\n | 'heading-2'\n | 'body-lg'\n | 'body-md'\n | 'subtext'\n | 'subtext-small';\n\nexport type TextColorToken =\n | 'text-main-primary'\n | 'text-main-secondary'\n | 'text-main-tertiary'\n | 'text-main-disabled'\n | 'text-main-subtle'\n | 'text-action-primary'\n | 'text-action-subdued'\n | 'text-action-alternative'\n | 'text-action-brand'\n | 'text-deco-primary'\n | 'text-deco-secondary'\n | 'text-error';\n\ntype FontWeight = 'normal' | 'medium' | 'semi-bold' | 'bold';\n\nexport interface TextProps extends React.HTMLProps<HTMLParagraphElement> {\n variant?: Variant;\n fontWeight?: FontWeight;\n color?: TextColorToken;\n className?: string;\n as?: keyof JSX.IntrinsicElements;\n to?: string;\n align?: 'left' | 'center' | 'right';\n hoverEffect?: 'underline';\n dataTestId?: string;\n dataCy?: string;\n ellipsis?: boolean;\n noWrap?: boolean;\n}\n\nconst Text: React.FC<TextProps> = ({\n children,\n className,\n as = 'span',\n to,\n color = 'text-main-secondary',\n fontWeight,\n align,\n href,\n style,\n hoverEffect,\n variant,\n dataTestId,\n dataCy,\n ellipsis,\n noWrap,\n ...rest\n}) => {\n const elementRef = React.useRef<any>();\n const Component: keyof JSX.IntrinsicElements | React.FC<any> = to ? Link : as;\n const variantClassName = variant ? `TDB-Text--${variant}` : '';\n const fontWeightClassName = fontWeight ? `TDB-Text--fw-${fontWeight}` : '';\n const hoverEffectClassName = hoverEffect\n ? `TDB-Text--hover-${hoverEffect}`\n : '';\n\n const textIsTruncated = React.useMemo(() => {\n const element = elementRef.current;\n if (!ellipsis || !element) {\n return false;\n }\n\n if (element.clientWidth < element.scrollWidth) {\n return true;\n }\n\n return false;\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [ellipsis, elementRef.current]);\n\n return (\n <Component\n ref={elementRef}\n data-testid={dataTestId}\n data-cy={dataCy}\n style={{ textAlign: align, color: `var(--${color})`, ...style }}\n title={textIsTruncated ? reactNodeToString(children) : null}\n className={classNames(\n 'TDB-Text',\n fontWeightClassName,\n hoverEffectClassName,\n variantClassName,\n className,\n {\n 'TDB-Text--ellipsis': ellipsis,\n 'TDB-Text--truncated': textIsTruncated,\n 'TDB-Text--no-wrap': noWrap,\n }\n )}\n to={to}\n href={href}\n {...rest}\n >\n {children}\n </Component>\n );\n};\n\nexport default Text;\n","import Text from './Text';\n\nexport default Text;\nexport * from './Text';\n","import React, { useRef, useState } from 'react';\nimport './Tooltip.scss';\nimport { usePopper } from 'react-popper';\nimport useOnClickOutside from 'hooks/useOnClickOutside';\nimport Text from 'components/Text';\nimport { PositioningStrategy } from '@popperjs/core';\nimport classNames from 'classnames';\n\ntype Placements =\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top'\n | 'bottom'\n | 'right'\n | 'left'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\n\ninterface PoppperProps extends React.PropsWithChildren {\n content: React.ReactNode | React.ReactNode[];\n trigger?: 'hover' | 'click' | 'manual';\n placement?: Placements;\n className?: string;\n dataCy?: string;\n handleCloseTooltip?: () => void;\n visible?: boolean;\n interactive?: boolean;\n strategy?: PositioningStrategy;\n dataTestID?: string;\n noArrow?: boolean;\n backgroundColor?: string;\n}\n\nconst Tooltip: React.FC<PoppperProps> = ({\n content,\n children,\n interactive = true,\n placement = 'auto',\n trigger = 'hover',\n className,\n handleCloseTooltip,\n visible,\n dataCy,\n strategy,\n dataTestID,\n noArrow,\n backgroundColor,\n}) => {\n const [referenceElement, setReferenceElement] = useState<\n HTMLElement | null | undefined\n >(null);\n const [popperElement, setPopperElement] = useState<\n HTMLElement | null | undefined\n >(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n placement,\n strategy,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 6],\n },\n },\n ],\n });\n const tooltipRef = useRef<HTMLDivElement>(null);\n const manualMode = trigger === 'manual';\n const hoverMode = trigger === 'hover';\n const clickMode = trigger === 'click';\n const [showTooltip, toggleTooltip] = useState(false);\n\n useOnClickOutside(tooltipRef, () => {\n if ((visible && manualMode) || clickMode) {\n handleCloseTooltip?.();\n toggleTooltip(() => false);\n }\n });\n\n if (!content) {\n return <>{children}</>;\n }\n\n return (\n <div\n data-testid={dataTestID}\n data-cy={dataCy}\n className={classNames('TDB-Tooltip__Wrapper', className)}\n ref={tooltipRef}\n onMouseEnter={(): any =>\n hoverMode && interactive && toggleTooltip(() => true)\n }\n onMouseLeave={(): any =>\n hoverMode && interactive && toggleTooltip(() => false)\n }\n >\n <div\n className=\"TDB-Tooltip__Wrapper__inner\"\n ref={setReferenceElement}\n onClick={(): any =>\n clickMode && toggleTooltip((visibility: any) => !visibility)\n }\n onMouseEnter={(): any =>\n hoverMode && !interactive && toggleTooltip(() => true)\n }\n onMouseLeave={(): any =>\n hoverMode && !interactive && toggleTooltip(() => false)\n }\n >\n {children}\n </div>\n {!(manualMode && !visible) &&\n !((hoverMode || clickMode) && !showTooltip) && (\n <div\n className=\"TDB-Tooltip\"\n role=\"tooltip\"\n id=\"tooltip\"\n ref={setPopperElement}\n style={{ ...styles.popper, backgroundColor }}\n {...attributes.popper}\n onClick={(): any => clickMode && toggleTooltip(() => false)}\n >\n {!noArrow && <div data-testid=\"tooltip-arrow\" data-popper-arrow />}\n {Array.isArray(content) ? (\n <div className=\"TDB-Tooltip__List\">\n {content instanceof Array &&\n content.map((s: React.ReactNode, i: number) => (\n <TooltipText key={i}>{s}</TooltipText>\n ))}\n </div>\n ) : (\n <TooltipText>{content}</TooltipText>\n )}\n </div>\n )}\n </div>\n );\n};\n\nconst TooltipText: React.FC<React.PropsWithChildren> = (props) => {\n const { children } = props;\n return (\n <Text\n className=\"TDB-Tooltip__Text\"\n color=\"text-action-alternative\"\n fontWeight=\"semi-bold\"\n as=\"div\"\n variant=\"subtext\"\n >\n {children}\n </Text>\n );\n};\n\nexport default Tooltip;\n","import Tooltip from './Tooltip';\n\nexport default Tooltip;\n","import { AnyObject, Primitive } from './types';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType<T extends Primitive | Function>(type: string) {\n return (value: unknown): value is T => typeof value === type;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = isOfType<Function>('function');\n\nexport const isNull = (value: unknown): value is null => {\n return value === null;\n};\n\nexport const isRegex = (value: unknown): value is RegExp => {\n return Object.prototype.toString.call(value).slice(8, -1) === 'RegExp';\n};\n\nexport const isObject = (value: unknown): value is AnyObject => {\n return !isUndefined(value) && !isNull(value) && (isFunction(value) || typeof value === 'object');\n};\n\nexport const isUndefined = isOfType<undefined>('undefined');\n","import { isObject, isRegex } from './helpers';\n\nfunction equalArray(left: unknown[], right: unknown[]) {\n const { length } = left;\n\n if (length !== right.length) {\n return false;\n }\n\n for (let index = length; index-- !== 0; ) {\n if (!equal(left[index], right[index])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction equalArrayBuffer(left: ArrayBufferView, right: ArrayBufferView) {\n if (left.byteLength !== right.byteLength) {\n return false;\n }\n\n const view1 = new DataView(left.buffer);\n const view2 = new DataView(right.buffer);\n\n let index = left.byteLength;\n\n while (index--) {\n if (view1.getUint8(index) !== view2.getUint8(index)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction equalMap(left: Map<unknown, unknown>, right: Map<unknown, unknown>) {\n if (left.size !== right.size) {\n return false;\n }\n\n for (const index of left.entries()) {\n if (!right.has(index[0])) {\n return false;\n }\n }\n\n for (const index of left.entries()) {\n if (!equal(index[1], right.get(index[0]))) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction equalSet(left: Set<unknown>, right: Set<unknown>) {\n if (left.size !== right.size) {\n return false;\n }\n\n for (const index of left.entries()) {\n if (!right.has(index[0])) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default function equal(left: unknown, right: unknown) {\n if (left === right) {\n return true;\n }\n\n if (left && isObject(left) && right && isObject(right)) {\n if (left.constructor !== right.constructor) {\n return false;\n }\n\n if (Array.isArray(left) && Array.isArray(right)) {\n return equalArray(left, right);\n }\n\n if (left instanceof Map && right instanceof Map) {\n return equalMap(left, right);\n }\n\n if (left instanceof Set && right instanceof Set) {\n return equalSet(left, right);\n }\n\n if (ArrayBuffer.isView(left) && ArrayBuffer.isView(right)) {\n return equalArrayBuffer(left, right);\n }\n\n if (isRegex(left) && isRegex(right)) {\n return left.source === right.source && left.flags === right.flags;\n }\n\n if (left.valueOf !== Object.prototype.valueOf) {\n return left.valueOf() === right.valueOf();\n }\n\n if (left.toString !== Object.prototype.toString) {\n return left.toString() === right.toString();\n }\n\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n\n for (let index = leftKeys.length; index-- !== 0; ) {\n if (!Object.prototype.hasOwnProperty.call(right, leftKeys[index])) {\n return false;\n }\n }\n\n for (let index = leftKeys.length; index-- !== 0; ) {\n const key = leftKeys[index];\n\n if (key === '_owner' && left.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!equal(left[key], right[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n if (Number.isNaN(left) && Number.isNaN(right)) {\n return true;\n }\n\n return left === right;\n}\n","import { Class, PlainObject, Primitive } from './types';\n\nconst DOM_PROPERTIES_TO_CHECK: Array<keyof HTMLElement> = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue',\n];\n\nconst objectTypes = [\n 'Array',\n 'ArrayBuffer',\n 'AsyncFunction',\n 'AsyncGenerator',\n 'AsyncGeneratorFunction',\n 'Date',\n 'Error',\n 'Function',\n 'Generator',\n 'GeneratorFunction',\n 'HTMLElement',\n 'Map',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n] as const;\n\nconst primitiveTypes = [\n 'bigint',\n 'boolean',\n 'null',\n 'number',\n 'string',\n 'symbol',\n 'undefined',\n] as const;\n\nexport type ObjectTypes = typeof objectTypes[number];\n\nexport type PrimitiveTypes = typeof primitiveTypes[number];\n\nexport type TypeName = ObjectTypes | PrimitiveTypes;\n\nexport function getObjectType(value: unknown): ObjectTypes | undefined {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n\n if (/HTML\\w+Element/.test(objectTypeName)) {\n return 'HTMLElement';\n }\n\n if (isObjectType(objectTypeName)) {\n return objectTypeName;\n }\n\n return undefined;\n}\n\nfunction isObjectOfType<T>(type: string) {\n return (value: unknown): value is T => getObjectType(value) === type;\n}\n\nfunction isObjectType(name: unknown): name is ObjectTypes {\n return objectTypes.includes(name as ObjectTypes);\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType<T extends Primitive | Function>(type: string) {\n return (value: unknown): value is T => typeof value === type;\n}\n\nfunction isPrimitiveType(name: unknown): name is PrimitiveTypes {\n return primitiveTypes.includes(name as PrimitiveTypes);\n}\n\nfunction is(value: unknown): TypeName {\n if (value === null) {\n return 'null';\n }\n\n switch (typeof value) {\n case 'bigint':\n return 'bigint';\n case 'boolean':\n return 'boolean';\n case 'number':\n return 'number';\n case 'string':\n return 'string';\n case 'symbol':\n return 'symbol';\n case 'undefined':\n return 'undefined';\n default:\n }\n\n if (is.array(value)) {\n return 'Array';\n }\n\n if (is.plainFunction(value)) {\n return 'Function';\n }\n\n const tagType = getObjectType(value);\n\n /* istanbul ignore else */\n if (tagType) {\n return tagType;\n }\n\n /* istanbul ignore next */\n return 'Object';\n}\n\nis.array = Array.isArray;\n\nis.arrayOf = (target: unknown[], predicate: (v: unknown) => boolean): boolean => {\n if (!is.array(target) && !is.function(predicate)) {\n return false;\n }\n\n return target.every(d => predicate(d));\n};\n\nis.asyncGeneratorFunction = (value: unknown): value is (...arguments_: any[]) => Promise<unknown> =>\n getObjectType(value) === 'AsyncGeneratorFunction';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.asyncFunction = isObjectOfType<Function>('AsyncFunction');\n\nis.bigint = isOfType<bigint>('bigint');\n\nis.boolean = (value: unknown): value is boolean => {\n return value === true || value === false;\n};\n\nis.date = isObjectOfType<Date>('Date');\n\nis.defined = (value: unknown): boolean => !is.undefined(value);\n\nis.domElement = (value: unknown): value is HTMLElement => {\n return (\n is.object(value) &&\n !is.plainObject(value) &&\n (value as HTMLElement).nodeType === 1 &&\n is.string((value as HTMLElement).nodeName) &&\n DOM_PROPERTIES_TO_CHECK.every(property => property in (value as HTMLElement))\n );\n};\n\nis.empty = (value: unknown): boolean => {\n return (\n (is.string(value) && value.length === 0) ||\n (is.array(value) && value.length === 0) ||\n (is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0) ||\n (is.set(value) && value.size === 0) ||\n (is.map(value) && value.size === 0)\n );\n};\n\nis.error = isObjectOfType<Error>('Error');\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.function = isOfType<Function>('function');\n\nis.generator = (value: unknown): value is Generator => {\n return (\n is.iterable(value) &&\n is.function((value as IterableIterator<unknown>).next) &&\n is.function((value as IterableIterator<unknown>).throw)\n );\n};\n\nis.generatorFunction = isObjectOfType<GeneratorFunction>('GeneratorFunction');\n\nis.instanceOf = <T>(instance: unknown, class_: Class<T>): instance is T => {\n if (!instance || !(class_ as Class<T>)) {\n return false;\n }\n\n return Object.getPrototypeOf(instance) === class_.prototype;\n};\n\nis.iterable = (value: unknown): value is IterableIterator<unknown> => {\n return (\n !is.nullOrUndefined(value) && is.function((value as IterableIterator<unknown>)[Symbol.iterator])\n );\n};\n\nis.map = isObjectOfType<Map<unknown, unknown>>('Map');\n\nis.nan = (value: unknown): boolean => {\n return Number.isNaN(value as number);\n};\n\nis.null = (value: unknown): value is null => {\n return value === null;\n};\n\nis.nullOrUndefined = (value: unknown): value is null | undefined => {\n return is.null(value) || is.undefined(value);\n};\n\nis.number = (value: unknown): value is number => {\n return isOfType<number>('number')(value) && !is.nan(value);\n};\n\nis.numericString = (value: unknown): value is string => {\n return is.string(value) && (value as string).length > 0 && !Number.isNaN(Number(value));\n};\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.object = (value: unknown): value is object => {\n return !is.nullOrUndefined(value) && (is.function(value) || typeof value === 'object');\n};\n\nis.oneOf = (target: unknown[], value: any): boolean => {\n if (!is.array(target)) {\n return false;\n }\n\n // eslint-disable-next-line unicorn/prefer-includes\n return target.indexOf(value) > -1;\n};\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.plainFunction = isObjectOfType<Function>('Function');\n\nis.plainObject = (value: unknown): value is PlainObject => {\n if (getObjectType(value) !== 'Object') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\n\nis.primitive = (value: unknown): value is Primitive =>\n is.null(value) || isPrimitiveType(typeof value);\n\nis.promise = isObjectOfType<Promise<unknown>>('Promise');\n\nis.propertyOf = (\n target: PlainObject,\n key: string,\n predicate?: (v: unknown) => boolean,\n): boolean => {\n if (!is.object(target) || !key) {\n return false;\n }\n\n const value = target[key];\n\n if (is.function(predicate)) {\n return predicate(value);\n }\n\n return is.defined(value);\n};\n\nis.regexp = isObjectOfType<RegExp>('RegExp');\n\nis.set = isObjectOfType<Set<PlainObject>>('Set');\n\nis.string = isOfType<string>('string');\n\nis.symbol = isOfType<symbol>('symbol');\n\nis.undefined = isOfType<undefined>('undefined');\n\nis.weakMap = isObjectOfType<WeakMap<PlainObject, unknown>>('WeakMap');\n\nis.weakSet = isObjectOfType<WeakSet<PlainObject>>('WeakSet');\n\nexport * from './types';\n\nexport default is;\n","import equal from '@gilbarbara/deep-equal';\nimport is from 'is-lite';\n\nimport { CompareValuesOptions, Data, Key, Options, ValidTypes, Value } from './types';\n\nexport function canHaveLength(...arguments_: any): boolean {\n return arguments_.every((d: unknown) => is.string(d) || is.array(d) || is.plainObject(d));\n}\n\nexport function checkEquality(left: Data, right: Data, value: Value) {\n if (!isSameType(left, right)) {\n return false;\n }\n\n if ([left, right].every(is.array)) {\n return !left.some(hasValue(value)) && right.some(hasValue(value));\n }\n\n /* istanbul ignore else */\n if ([left, right].every(is.plainObject)) {\n return (\n !Object.entries(left).some(hasEntry(value)) && Object.entries(right).some(hasEntry(value))\n );\n }\n\n return right === value;\n}\n\nexport function compareNumbers<K = Key>(\n previousData: Data,\n data: Data,\n options: Options<K>,\n): boolean {\n const { actual, key, previous, type } = options;\n const left = nested(previousData, key);\n const right = nested(data, key);\n\n let changed =\n [left, right].every(is.number) && (type === 'increased' ? left < right : left > right);\n\n if (!is.undefined(actual)) {\n changed = changed && right === actual;\n }\n\n if (!is.undefined(previous)) {\n changed = changed && left === previous;\n }\n\n return changed;\n}\n\nexport function compareValues<K = Key>(\n previousData: Data,\n data: Data,\n options: CompareValuesOptions<K>,\n) {\n const { key, type, value } = options;\n\n const left = nested(previousData, key);\n const right = nested(data, key);\n const primary = type === 'added' ? left : right;\n const secondary = type === 'added' ? right : left;\n\n // console.log({ primary, secondary });\n\n if (!is.nullOrUndefined(value)) {\n if (is.defined(primary)) {\n // check if nested data matches\n if (is.array(primary) || is.plainObject(primary)) {\n return checkEquality(primary, secondary, value);\n }\n } else {\n return equal(secondary, value);\n }\n\n return false;\n }\n\n if ([left, right].every(is.array)) {\n return !secondary.every(isEqualPredicate(primary));\n }\n\n if ([left, right].every(is.plainObject)) {\n return hasExtraKeys(Object.keys(primary), Object.keys(secondary));\n }\n\n return (\n ![left, right].every(d => is.primitive(d) && is.defined(d)) &&\n (type === 'added'\n ? !is.defined(left) && is.defined(right)\n : is.defined(left) && !is.defined(right))\n );\n}\n\nexport function getIterables<K = Key>(previousData: Data, data: Data, { key }: Options<K> = {}) {\n let left = nested(previousData, key);\n let right = nested(data, key);\n\n if (!isSameType(left, right)) {\n throw new TypeError('Inputs have different types');\n }\n\n if (!canHaveLength(left, right)) {\n throw new TypeError(\"Inputs don't have length\");\n }\n\n if ([left, right].every(is.plainObject)) {\n left = Object.keys(left);\n right = Object.keys(right);\n }\n\n return [left, right];\n}\n\nexport function hasEntry(input: Value) {\n return ([key, value]: [string, Value]) => {\n if (is.array(input)) {\n return (\n equal(input, value) ||\n input.some(d => equal(d, value) || (is.array(value) && isEqualPredicate(value)(d)))\n );\n }\n\n /* istanbul ignore else */\n if (is.plainObject(input) && input[key]) {\n return !!input[key] && equal(input[key], value);\n }\n\n return equal(input, value);\n };\n}\n\nexport function hasExtraKeys(left: string[], right: string[]): boolean {\n return right.some(d => !left.includes(d));\n}\n\nexport function hasValue(input: Value) {\n return (value: Value) => {\n if (is.array(input)) {\n return input.some(d => equal(d, value) || (is.array(value) && isEqualPredicate(value)(d)));\n }\n\n return equal(input, value);\n };\n}\n\nexport function includesOrEqualsTo<T>(previousValue: T | T[], value: T): boolean {\n return is.array(previousValue)\n ? previousValue.some(d => equal(d, value))\n : equal(previousValue, value);\n}\n\nexport function isEqualPredicate(data: unknown[]) {\n return (value: unknown) => data.some(d => equal(d, value));\n}\n\nexport function isSameType(...arguments_: ValidTypes[]): boolean {\n return (\n arguments_.every(is.array) ||\n arguments_.every(is.number) ||\n arguments_.every(is.plainObject) ||\n arguments_.every(is.string)\n );\n}\n\nexport function nested<T extends Data, K = Key>(data: T, property?: K) {\n /* istanbul ignore else */\n if (is.plainObject(data) || is.array(data)) {\n /* istanbul ignore else */\n if (is.string(property)) {\n const props: Array<any> = property.split('.');\n\n return props.reduce((acc, d) => acc && acc[d], data);\n }\n\n /* istanbul ignore else */\n if (is.number(property)) {\n return data[property];\n }\n\n return data;\n }\n\n return data;\n}\n","import equal from '@gilbarbara/deep-equal';\nimport is from 'is-lite';\n\nimport { compareNumbers, compareValues, getIterables, includesOrEqualsTo, nested } from './helpers';\nimport { Data, KeyType, TreeChanges, Value } from './types';\n\nexport default function treeChanges<P extends Data, D extends Data, K = KeyType<P, D>>(\n previousData: P,\n data: D,\n): TreeChanges<K> {\n if ([previousData, data].some(is.nullOrUndefined)) {\n throw new Error('Missing required parameters');\n }\n\n if (![previousData, data].every(d => is.plainObject(d) || is.array(d))) {\n throw new Error('Expected plain objects or array');\n }\n\n const added = (key?: K, value?: Value): boolean => {\n try {\n return compareValues<K>(previousData, data, { key, type: 'added', value });\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n const changed = (key?: K | string, actual?: Value, previous?: Value): boolean => {\n try {\n const left = nested(previousData, key);\n const right = nested(data, key);\n const hasActual = is.defined(actual);\n const hasPrevious = is.defined(previous);\n\n if (hasActual || hasPrevious) {\n const leftComparator = hasPrevious\n ? includesOrEqualsTo(previous, left)\n : !includesOrEqualsTo(actual, left);\n const rightComparator = includesOrEqualsTo(actual, right);\n\n return leftComparator && rightComparator;\n }\n\n if ([left, right].every(is.array) || [left, right].every(is.plainObject)) {\n return !equal(left, right);\n }\n\n return left !== right;\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n const changedFrom = (key: K | string, previous: Value, actual?: Value): boolean => {\n if (!is.defined(key)) {\n return false;\n }\n\n try {\n const left = nested(previousData, key);\n const right = nested(data, key);\n const hasActual = is.defined(actual);\n\n return (\n includesOrEqualsTo(previous, left) &&\n (hasActual ? includesOrEqualsTo(actual, right) : !hasActual)\n );\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n /**\n * @deprecated\n * Use \"changed\" instead\n */\n const changedTo = (key: K | string, actual: Value): boolean => {\n if (!is.defined(key)) {\n return false;\n }\n\n /* istanbul ignore next */\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('`changedTo` is deprecated! Replace it with `change`');\n }\n\n return changed(key, actual);\n };\n\n const decreased = (key: K, actual?: Value, previous?: Value): boolean => {\n if (!is.defined(key)) {\n return false;\n }\n\n try {\n return compareNumbers<K>(previousData, data, { key, actual, previous, type: 'decreased' });\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n const emptied = (key?: K): boolean => {\n try {\n const [left, right] = getIterables(previousData, data, { key });\n\n return !!left.length && !right.length;\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n const filled = (key?: K): boolean => {\n try {\n const [left, right] = getIterables(previousData, data, { key });\n\n return !left.length && !!right.length;\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n const increased = (key: K, actual?: Value, previous?: Value): boolean => {\n if (!is.defined(key)) {\n return false;\n }\n\n try {\n return compareNumbers<K>(previousData, data, { key, actual, previous, type: 'increased' });\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n const removed = (key?: K, value?: Value): boolean => {\n try {\n return compareValues<K>(previousData, data, { key, type: 'removed', value });\n } catch {\n /* istanbul ignore next */\n return false;\n }\n };\n\n return { added, changed, changedFrom, changedTo, decreased, emptied, filled, increased, removed };\n}\n\nexport * from './types';\n","/* eslint-disable @typescript-eslint/ban-types */\nconst DOM_PROPERTIES_TO_CHECK: Array<keyof HTMLElement> = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue',\n];\n\nconst objectTypes = [\n 'Array',\n 'ArrayBuffer',\n 'AsyncFunction',\n 'AsyncGenerator',\n 'AsyncGeneratorFunction',\n 'Date',\n 'Error',\n 'Function',\n 'Generator',\n 'GeneratorFunction',\n 'HTMLElement',\n 'Map',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n] as const;\n\nconst primitiveTypes = [\n 'bigint',\n 'boolean',\n 'null',\n 'number',\n 'string',\n 'symbol',\n 'undefined',\n] as const;\n\nexport type Class<T = unknown> = new (...arguments_: any[]) => T;\nexport type ObjectTypes = typeof objectTypes[number];\nexport type PlainObject = Record<number | string | symbol, unknown>;\nexport type Primitive = null | undefined | string | number | boolean | symbol | bigint;\nexport type PrimitiveTypes = typeof primitiveTypes[number];\nexport type TypeName = ObjectTypes | PrimitiveTypes;\n\nexport function getObjectType(value: unknown): ObjectTypes | undefined {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n\n if (/HTML\\w+Element/.test(objectTypeName)) {\n return 'HTMLElement';\n }\n\n if (isObjectType(objectTypeName)) {\n return objectTypeName;\n }\n\n return undefined;\n}\n\nfunction isObjectOfType<T>(type: string) {\n return (value: unknown): value is T => getObjectType(value) === type;\n}\n\nfunction isObjectType(name: unknown): name is ObjectTypes {\n return objectTypes.includes(name as ObjectTypes);\n}\n\nfunction isOfType<T extends Primitive | Function>(type: string) {\n return (value: unknown): value is T => typeof value === type;\n}\n\nfunction isPrimitiveType(name: unknown): name is PrimitiveTypes {\n return primitiveTypes.includes(name as PrimitiveTypes);\n}\n\nfunction is(value: unknown): TypeName {\n if (value === null) {\n return 'null';\n }\n\n switch (typeof value) {\n case 'bigint':\n return 'bigint';\n case 'boolean':\n return 'boolean';\n case 'number':\n return 'number';\n case 'string':\n return 'string';\n case 'symbol':\n return 'symbol';\n case 'undefined':\n return 'undefined';\n default:\n }\n\n if (is.array(value)) {\n return 'Array';\n }\n\n if (is.plainFunction(value)) {\n return 'Function';\n }\n\n const tagType = getObjectType(value);\n\n /* istanbul ignore else */\n if (tagType) {\n return tagType;\n }\n\n /* istanbul ignore next */\n return 'Object';\n}\n\nis.array = Array.isArray;\n\nis.arrayOf = (target: unknown[], predicate: (v: unknown) => boolean): boolean => {\n if (!is.array(target) && !is.function(predicate)) {\n return false;\n }\n\n return target.every(d => predicate(d));\n};\n\nis.asyncGeneratorFunction = (value: unknown): value is (...arguments_: any[]) => Promise<unknown> =>\n getObjectType(value) === 'AsyncGeneratorFunction';\n\nis.asyncFunction = isObjectOfType<Function>('AsyncFunction');\n\nis.bigint = isOfType<bigint>('bigint');\n\nis.boolean = (value: unknown): value is boolean => {\n return value === true || value === false;\n};\n\nis.date = isObjectOfType<Date>('Date');\n\nis.defined = (value: unknown): boolean => !is.undefined(value);\n\nis.domElement = (value: unknown): value is HTMLElement => {\n return (\n is.object(value) &&\n !is.plainObject(value) &&\n (value as HTMLElement).nodeType === 1 &&\n is.string((value as HTMLElement).nodeName) &&\n DOM_PROPERTIES_TO_CHECK.every(property => property in (value as HTMLElement))\n );\n};\n\nis.empty = (value: unknown): boolean => {\n return (\n (is.string(value) && value.length === 0) ||\n (is.array(value) && value.length === 0) ||\n (is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0) ||\n (is.set(value) && value.size === 0) ||\n (is.map(value) && value.size === 0)\n );\n};\n\nis.error = isObjectOfType<Error>('Error');\n\nis.function = isOfType<Function>('function');\n\nis.generator = (value: unknown): value is Generator => {\n return (\n is.iterable(value) &&\n is.function((value as IterableIterator<unknown>).next) &&\n is.function((value as IterableIterator<unknown>).throw)\n );\n};\n\nis.generatorFunction = isObjectOfType<GeneratorFunction>('GeneratorFunction');\n\nis.instanceOf = <T>(instance: unknown, class_: Class<T>): instance is T => {\n if (!instance || !(class_ as Class<T>)) {\n return false;\n }\n\n return Object.getPrototypeOf(instance) === class_.prototype;\n};\n\nis.iterable = (value: unknown): value is IterableIterator<unknown> => {\n return (\n !is.nullOrUndefined(value) && is.function((value as IterableIterator<unknown>)[Symbol.iterator])\n );\n};\n\nis.map = isObjectOfType<Map<unknown, unknown>>('Map');\n\nis.nan = (value: unknown): boolean => {\n return Number.isNaN(value as number);\n};\n\nis.null = (value: unknown): value is null => {\n return value === null;\n};\n\nis.nullOrUndefined = (value: unknown): value is null | undefined => {\n return is.null(value) || is.undefined(value);\n};\n\nis.number = (value: unknown): value is number => {\n return isOfType<number>('number')(value) && !is.nan(value);\n};\n\nis.numericString = (value: unknown): value is string => {\n return is.string(value) && (value as string).length > 0 && !Number.isNaN(Number(value));\n};\n\nis.object = (value: unknown): value is object => {\n return !is.nullOrUndefined(value) && (is.function(value) || typeof value === 'object');\n};\n\nis.oneOf = (target: unknown[], value: any): boolean => {\n if (!is.array(target)) {\n return false;\n }\n\n // eslint-disable-next-line unicorn/prefer-includes\n return target.indexOf(value) > -1;\n};\n\nis.plainFunction = isObjectOfType<Function>('Function');\n\nis.plainObject = (value: unknown): value is PlainObject => {\n if (getObjectType(value) !== 'Object') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\n\nis.primitive = (value: unknown): value is Primitive =>\n is.null(value) || isPrimitiveType(typeof value);\n\nis.promise = isObjectOfType<Promise<unknown>>('Promise');\n\nis.propertyOf = (\n target: PlainObject,\n key: string,\n predicate?: (v: unknown) => boolean,\n): boolean => {\n if (!is.object(target) || !key) {\n return false;\n }\n\n const value = target[key];\n\n if (is.function(predicate)) {\n return predicate(value);\n }\n\n return is.defined(value);\n};\n\nis.regexp = isObjectOfType<RegExp>('RegExp');\n\nis.set = isObjectOfType<Set<PlainObject>>('Set');\n\nis.string = isOfType<string>('string');\n\nis.symbol = isOfType<symbol>('symbol');\n\nis.undefined = isOfType<undefined>('undefined');\n\nis.weakMap = isObjectOfType<WeakMap<PlainObject, unknown>>('WeakMap');\n\nis.weakSet = isObjectOfType<WeakSet<PlainObject>>('WeakSet');\n\nexport default is;\n","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","import { Class, PlainObject, Primitive } from './types';\n\nconst DOM_PROPERTIES_TO_CHECK: Array<keyof HTMLElement> = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue',\n];\n\nconst objectTypes = [\n 'Array',\n 'ArrayBuffer',\n 'AsyncFunction',\n 'AsyncGenerator',\n 'AsyncGeneratorFunction',\n 'Date',\n 'Error',\n 'Function',\n 'Generator',\n 'GeneratorFunction',\n 'HTMLElement',\n 'Map',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n] as const;\n\nconst primitiveTypes = [\n 'bigint',\n 'boolean',\n 'null',\n 'number',\n 'string',\n 'symbol',\n 'undefined',\n] as const;\n\nexport type ObjectTypes = typeof objectTypes[number];\n\nexport type PrimitiveTypes = typeof primitiveTypes[number];\n\nexport type TypeName = ObjectTypes | PrimitiveTypes;\n\nexport function getObjectType(value: unknown): ObjectTypes | undefined {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n\n if (/HTML\\w+Element/.test(objectTypeName)) {\n return 'HTMLElement';\n }\n\n if (isObjectType(objectTypeName)) {\n return objectTypeName;\n }\n\n return undefined;\n}\n\nfunction isObjectOfType<T>(type: string) {\n return (value: unknown): value is T => getObjectType(value) === type;\n}\n\nfunction isObjectType(name: unknown): name is ObjectTypes {\n return objectTypes.includes(name as ObjectTypes);\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType<T extends Primitive | Function>(type: string) {\n return (value: unknown): value is T => typeof value === type;\n}\n\nfunction isPrimitiveType(name: unknown): name is PrimitiveTypes {\n return primitiveTypes.includes(name as PrimitiveTypes);\n}\n\nfunction is(value: unknown): TypeName {\n if (value === null) {\n return 'null';\n }\n\n switch (typeof value) {\n case 'bigint':\n return 'bigint';\n case 'boolean':\n return 'boolean';\n case 'number':\n return 'number';\n case 'string':\n return 'string';\n case 'symbol':\n return 'symbol';\n case 'undefined':\n return 'undefined';\n default:\n }\n\n if (is.array(value)) {\n return 'Array';\n }\n\n if (is.plainFunction(value)) {\n return 'Function';\n }\n\n const tagType = getObjectType(value);\n\n /* istanbul ignore else */\n if (tagType) {\n return tagType;\n }\n\n /* istanbul ignore next */\n return 'Object';\n}\n\nis.array = Array.isArray;\n\nis.arrayOf = (target: unknown[], predicate: (v: unknown) => boolean): boolean => {\n if (!is.array(target) && !is.function(predicate)) {\n return false;\n }\n\n return target.every(d => predicate(d));\n};\n\nis.asyncGeneratorFunction = (value: unknown): value is (...arguments_: any[]) => Promise<unknown> =>\n getObjectType(value) === 'AsyncGeneratorFunction';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.asyncFunction = isObjectOfType<Function>('AsyncFunction');\n\nis.bigint = isOfType<bigint>('bigint');\n\nis.boolean = (value: unknown): value is boolean => {\n return value === true || value === false;\n};\n\nis.date = isObjectOfType<Date>('Date');\n\nis.defined = (value: unknown): boolean => !is.undefined(value);\n\nis.domElement = (value: unknown): value is HTMLElement => {\n return (\n is.object(value) &&\n !is.plainObject(value) &&\n (value as HTMLElement).nodeType === 1 &&\n is.string((value as HTMLElement).nodeName) &&\n DOM_PROPERTIES_TO_CHECK.every(property => property in (value as HTMLElement))\n );\n};\n\nis.empty = (value: unknown): boolean => {\n return (\n (is.string(value) && value.length === 0) ||\n (is.array(value) && value.length === 0) ||\n (is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0) ||\n (is.set(value) && value.size === 0) ||\n (is.map(value) && value.size === 0)\n );\n};\n\nis.error = isObjectOfType<Error>('Error');\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.function = isOfType<Function>('function');\n\nis.generator = (value: unknown): value is Generator => {\n return (\n is.iterable(value) &&\n is.function((value as IterableIterator<unknown>).next) &&\n is.function((value as IterableIterator<unknown>).throw)\n );\n};\n\nis.generatorFunction = isObjectOfType<GeneratorFunction>('GeneratorFunction');\n\nis.instanceOf = <T>(instance: unknown, class_: Class<T>): instance is T => {\n if (!instance || !(class_ as Class<T>)) {\n return false;\n }\n\n return Object.getPrototypeOf(instance) === class_.prototype;\n};\n\nis.iterable = (value: unknown): value is IterableIterator<unknown> => {\n return (\n !is.nullOrUndefined(value) && is.function((value as IterableIterator<unknown>)[Symbol.iterator])\n );\n};\n\nis.map = isObjectOfType<Map<unknown, unknown>>('Map');\n\nis.nan = (value: unknown): boolean => {\n return Number.isNaN(value as number);\n};\n\nis.null = (value: unknown): value is null => {\n return value === null;\n};\n\nis.nullOrUndefined = (value: unknown): value is null | undefined => {\n return is.null(value) || is.undefined(value);\n};\n\nis.number = (value: unknown): value is number => {\n return isOfType<number>('number')(value) && !is.nan(value);\n};\n\nis.numericString = (value: unknown): value is string => {\n return is.string(value) && (value as string).length > 0 && !Number.isNaN(Number(value));\n};\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.object = (value: unknown): value is object => {\n return !is.nullOrUndefined(value) && (is.function(value) || typeof value === 'object');\n};\n\nis.oneOf = (target: unknown[], value: any): boolean => {\n if (!is.array(target)) {\n return false;\n }\n\n // eslint-disable-next-line unicorn/prefer-includes\n return target.indexOf(value) > -1;\n};\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.plainFunction = isObjectOfType<Function>('Function');\n\nis.plainObject = (value: unknown): value is PlainObject => {\n if (getObjectType(value) !== 'Object') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\n\nis.primitive = (value: unknown): value is Primitive =>\n is.null(value) || isPrimitiveType(typeof value);\n\nis.promise = isObjectOfType<Promise<unknown>>('Promise');\n\nis.propertyOf = (\n target: PlainObject,\n key: string,\n predicate?: (v: unknown) => boolean,\n): boolean => {\n if (!is.object(target) || !key) {\n return false;\n }\n\n const value = target[key];\n\n if (is.function(predicate)) {\n return predicate(value);\n }\n\n return is.defined(value);\n};\n\nis.regexp = isObjectOfType<RegExp>('RegExp');\n\nis.set = isObjectOfType<Set<PlainObject>>('Set');\n\nis.string = isOfType<string>('string');\n\nis.symbol = isOfType<symbol>('symbol');\n\nis.undefined = isOfType<undefined>('undefined');\n\nis.weakMap = isObjectOfType<WeakMap<PlainObject, unknown>>('WeakMap');\n\nis.weakSet = isObjectOfType<WeakSet<PlainObject>>('WeakSet');\n\nexport * from './types';\n\nexport default is;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isRequiredIf from 'react-proptype-conditional-require';\nimport Popper from 'popper.js';\nimport deepmerge from 'deepmerge';\nimport is from 'is-lite';\nimport treeChanges from 'tree-changes';\nimport ReactDOM from 'react-dom';\nimport ExecutionEnvironment from 'exenv';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar DEFAULTS = {flip:{padding:20},preventOverflow:{padding:10}};\n\nvar STATUS = {INIT:'init',IDLE:'idle',OPENING:'opening',OPEN:'open',CLOSING:'closing',ERROR:'error'};\n\nvar canUseDOM=ExecutionEnvironment.canUseDOM;var isReact16=ReactDOM.createPortal!==undefined;function isMobile(){return 'ontouchstart'in window&&/Mobi/.test(navigator.userAgent);}/**\n * Log method calls if debug is enabled\n *\n * @private\n * @param {Object} arg\n * @param {string} arg.title - The title the logger was called from\n * @param {Object|Array} [arg.data] - The data to be logged\n * @param {boolean} [arg.warn] - If true, the message will be a warning\n * @param {boolean} [arg.debug] - Nothing will be logged unless debug is true\n */function log(_ref){var title=_ref.title,data=_ref.data,_ref$warn=_ref.warn,warn=_ref$warn===void 0?false:_ref$warn,_ref$debug=_ref.debug,debug=_ref$debug===void 0?false:_ref$debug;/* eslint-disable no-console */var logFn=warn?console.warn||console.error:console.log;if(debug&&title&&data){console.groupCollapsed(\"%creact-floater: \".concat(title),'color: #9b00ff; font-weight: bold; font-size: 12px;');if(Array.isArray(data)){data.forEach(function(d){if(is.plainObject(d)&&d.key){logFn.apply(console,[d.key,d.value]);}else {logFn.apply(console,[d]);}});}else {logFn.apply(console,[data]);}console.groupEnd();}/* eslint-enable */}function on(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.addEventListener(event,cb,capture);}function off(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.removeEventListener(event,cb,capture);}function once(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var _nextCB;// eslint-disable-next-line prefer-const\n_nextCB=function nextCB(e){cb(e);off(element,event,_nextCB);};on(element,event,_nextCB,capture);}function noop(){}\n\nvar ReactFloaterPortal=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterPortal,_React$Component);var _super=_createSuper(ReactFloaterPortal);function ReactFloaterPortal(){_classCallCheck(this,ReactFloaterPortal);return _super.apply(this,arguments);}_createClass(ReactFloaterPortal,[{key:\"componentDidMount\",value:function componentDidMount(){if(!canUseDOM)return;if(!this.node){this.appendNode();}if(!isReact16){this.renderPortal();}}},{key:\"componentDidUpdate\",value:function componentDidUpdate(){if(!canUseDOM)return;if(!isReact16){this.renderPortal();}}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){if(!canUseDOM||!this.node)return;if(!isReact16){ReactDOM.unmountComponentAtNode(this.node);}if(this.node&&this.node.parentNode===document.body){document.body.removeChild(this.node);this.node=undefined;}}},{key:\"appendNode\",value:function appendNode(){var _this$props=this.props,id=_this$props.id,zIndex=_this$props.zIndex;if(!this.node){this.node=document.createElement('div');/* istanbul ignore else */if(id){this.node.id=id;}if(zIndex){this.node.style.zIndex=zIndex;}document.body.appendChild(this.node);}}},{key:\"renderPortal\",value:function renderPortal(){if(!canUseDOM)return null;var _this$props2=this.props,children=_this$props2.children,setRef=_this$props2.setRef;if(!this.node){this.appendNode();}/* istanbul ignore else */if(isReact16){return/*#__PURE__*/ReactDOM.createPortal(children,this.node);}var portal=ReactDOM.unstable_renderSubtreeIntoContainer(this,children.length>1?/*#__PURE__*/React.createElement(\"div\",null,children):children[0],this.node);setRef(portal);return null;}},{key:\"renderReact16\",value:function renderReact16(){var _this$props3=this.props,hasChildren=_this$props3.hasChildren,placement=_this$props3.placement,target=_this$props3.target;if(!hasChildren){if(target||placement==='center'){return this.renderPortal();}return null;}return this.renderPortal();}},{key:\"render\",value:function render(){if(!isReact16){return null;}return this.renderReact16();}}]);return ReactFloaterPortal;}(React.Component);_defineProperty(ReactFloaterPortal,\"propTypes\",{children:PropTypes.oneOfType([PropTypes.element,PropTypes.array]),hasChildren:PropTypes.bool,id:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),placement:PropTypes.string,setRef:PropTypes.func.isRequired,target:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),zIndex:PropTypes.number});\n\nvar FloaterArrow=/*#__PURE__*/function(_React$Component){_inherits(FloaterArrow,_React$Component);var _super=_createSuper(FloaterArrow);function FloaterArrow(){_classCallCheck(this,FloaterArrow);return _super.apply(this,arguments);}_createClass(FloaterArrow,[{key:\"parentStyle\",get:function get(){var _this$props=this.props,placement=_this$props.placement,styles=_this$props.styles;var length=styles.arrow.length;var arrow={pointerEvents:'none',position:'absolute',width:'100%'};/* istanbul ignore else */if(placement.startsWith('top')){arrow.bottom=0;arrow.left=0;arrow.right=0;arrow.height=length;}else if(placement.startsWith('bottom')){arrow.left=0;arrow.right=0;arrow.top=0;arrow.height=length;}else if(placement.startsWith('left')){arrow.right=0;arrow.top=0;arrow.bottom=0;}else if(placement.startsWith('right')){arrow.left=0;arrow.top=0;}return arrow;}},{key:\"render\",value:function render(){var _this$props2=this.props,placement=_this$props2.placement,setArrowRef=_this$props2.setArrowRef,styles=_this$props2.styles;var _styles$arrow=styles.arrow,color=_styles$arrow.color,display=_styles$arrow.display,length=_styles$arrow.length,margin=_styles$arrow.margin,position=_styles$arrow.position,spread=_styles$arrow.spread;var arrowStyles={display:display,position:position};var points;var x=spread;var y=length;/* istanbul ignore else */if(placement.startsWith('top')){points=\"0,0 \".concat(x/2,\",\").concat(y,\" \").concat(x,\",0\");arrowStyles.bottom=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('bottom')){points=\"\".concat(x,\",\").concat(y,\" \").concat(x/2,\",0 0,\").concat(y);arrowStyles.top=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('left')){y=spread;x=length;points=\"0,0 \".concat(x,\",\").concat(y/2,\" 0,\").concat(y);arrowStyles.right=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}else if(placement.startsWith('right')){y=spread;x=length;points=\"\".concat(x,\",\").concat(y,\" \").concat(x,\",0 0,\").concat(y/2);arrowStyles.left=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}return/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__arrow\",style:this.parentStyle},/*#__PURE__*/React.createElement(\"span\",{ref:setArrowRef,style:arrowStyles},/*#__PURE__*/React.createElement(\"svg\",{width:x,height:y,version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\"},/*#__PURE__*/React.createElement(\"polygon\",{points:points,fill:color}))));}}]);return FloaterArrow;}(React.Component);_defineProperty(FloaterArrow,\"propTypes\",{placement:PropTypes.string.isRequired,setArrowRef:PropTypes.func.isRequired,styles:PropTypes.object.isRequired});\n\nvar _excluded$1=[\"color\",\"height\",\"width\"];var FloaterCloseBtn=function FloaterCloseBtn(_ref){var handleClick=_ref.handleClick,styles=_ref.styles;var color=styles.color,height=styles.height,width=styles.width,style=_objectWithoutProperties(styles,_excluded$1);return/*#__PURE__*/React.createElement(\"button\",{\"aria-label\":\"close\",onClick:handleClick,style:style,type:\"button\"},/*#__PURE__*/React.createElement(\"svg\",{width:\"\".concat(width,\"px\"),height:\"\".concat(height,\"px\"),viewBox:\"0 0 18 18\",version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",preserveAspectRatio:\"xMidYMid\"},/*#__PURE__*/React.createElement(\"g\",null,/*#__PURE__*/React.createElement(\"path\",{d:\"M8.13911129,9.00268191 L0.171521827,17.0258467 C-0.0498027049,17.248715 -0.0498027049,17.6098394 0.171521827,17.8327545 C0.28204354,17.9443526 0.427188206,17.9998706 0.572051765,17.9998706 C0.71714958,17.9998706 0.862013139,17.9443526 0.972581703,17.8327545 L9.0000937,9.74924618 L17.0276057,17.8327545 C17.1384085,17.9443526 17.2832721,17.9998706 17.4281356,17.9998706 C17.5729992,17.9998706 17.718097,17.9443526 17.8286656,17.8327545 C18.0499901,17.6098862 18.0499901,17.2487618 17.8286656,17.0258467 L9.86135722,9.00268191 L17.8340066,0.973848225 C18.0553311,0.750979934 18.0553311,0.389855532 17.8340066,0.16694039 C17.6126821,-0.0556467968 17.254037,-0.0556467968 17.0329467,0.16694039 L9.00042166,8.25611765 L0.967006424,0.167268345 C0.745681892,-0.0553188426 0.387317931,-0.0553188426 0.165993399,0.167268345 C-0.0553311331,0.390136635 -0.0553311331,0.751261038 0.165993399,0.974176179 L8.13920499,9.00268191 L8.13911129,9.00268191 Z\",fill:color}))));};FloaterCloseBtn.propTypes={handleClick:PropTypes.func.isRequired,styles:PropTypes.object.isRequired};\n\nvar FloaterContainer=function FloaterContainer(_ref){var content=_ref.content,footer=_ref.footer,handleClick=_ref.handleClick,open=_ref.open,positionWrapper=_ref.positionWrapper,showCloseButton=_ref.showCloseButton,title=_ref.title,styles=_ref.styles;var output={content:/*#__PURE__*/React.isValidElement(content)?content:/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__content\",style:styles.content},content)};if(title){output.title=/*#__PURE__*/React.isValidElement(title)?title:/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__title\",style:styles.title},title);}if(footer){output.footer=/*#__PURE__*/React.isValidElement(footer)?footer:/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__footer\",style:styles.footer},footer);}if((showCloseButton||positionWrapper)&&!is[\"boolean\"](open)){output.close=/*#__PURE__*/React.createElement(FloaterCloseBtn,{styles:styles.close,handleClick:handleClick});}return/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__container\",style:styles.container},output.close,output.title,output.content,output.footer);};FloaterContainer.propTypes={content:PropTypes.node.isRequired,footer:PropTypes.node,handleClick:PropTypes.func.isRequired,open:PropTypes.bool,positionWrapper:PropTypes.bool.isRequired,showCloseButton:PropTypes.bool.isRequired,styles:PropTypes.object.isRequired,title:PropTypes.node};\n\nvar Floater=/*#__PURE__*/function(_React$Component){_inherits(Floater,_React$Component);var _super=_createSuper(Floater);function Floater(){_classCallCheck(this,Floater);return _super.apply(this,arguments);}_createClass(Floater,[{key:\"style\",get:function get(){var _this$props=this.props,disableAnimation=_this$props.disableAnimation,component=_this$props.component,placement=_this$props.placement,hideArrow=_this$props.hideArrow,status=_this$props.status,styles=_this$props.styles;var length=styles.arrow.length,floater=styles.floater,floaterCentered=styles.floaterCentered,floaterClosing=styles.floaterClosing,floaterOpening=styles.floaterOpening,floaterWithAnimation=styles.floaterWithAnimation,floaterWithComponent=styles.floaterWithComponent;var element={};if(!hideArrow){if(placement.startsWith('top')){element.padding=\"0 0 \".concat(length,\"px\");}else if(placement.startsWith('bottom')){element.padding=\"\".concat(length,\"px 0 0\");}else if(placement.startsWith('left')){element.padding=\"0 \".concat(length,\"px 0 0\");}else if(placement.startsWith('right')){element.padding=\"0 0 0 \".concat(length,\"px\");}}if([STATUS.OPENING,STATUS.OPEN].indexOf(status)!==-1){element=_objectSpread2(_objectSpread2({},element),floaterOpening);}if(status===STATUS.CLOSING){element=_objectSpread2(_objectSpread2({},element),floaterClosing);}if(status===STATUS.OPEN&&!disableAnimation){element=_objectSpread2(_objectSpread2({},element),floaterWithAnimation);}if(placement==='center'){element=_objectSpread2(_objectSpread2({},element),floaterCentered);}if(component){element=_objectSpread2(_objectSpread2({},element),floaterWithComponent);}return _objectSpread2(_objectSpread2({},floater),element);}},{key:\"render\",value:function render(){var _this$props2=this.props,component=_this$props2.component,closeFn=_this$props2.handleClick,hideArrow=_this$props2.hideArrow,setFloaterRef=_this$props2.setFloaterRef,status=_this$props2.status;var output={};var classes=['__floater'];if(component){if(/*#__PURE__*/React.isValidElement(component)){output.content=/*#__PURE__*/React.cloneElement(component,{closeFn:closeFn});}else {output.content=component({closeFn:closeFn});}}else {output.content=/*#__PURE__*/React.createElement(FloaterContainer,this.props);}if(status===STATUS.OPEN){classes.push('__floater__open');}if(!hideArrow){output.arrow=/*#__PURE__*/React.createElement(FloaterArrow,this.props);}return/*#__PURE__*/React.createElement(\"div\",{ref:setFloaterRef,className:classes.join(' '),style:this.style},/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__body\"},output.content,output.arrow));}}]);return Floater;}(React.Component);_defineProperty(Floater,\"propTypes\",{component:PropTypes.oneOfType([PropTypes.func,PropTypes.element]),content:PropTypes.node,disableAnimation:PropTypes.bool.isRequired,footer:PropTypes.node,handleClick:PropTypes.func.isRequired,hideArrow:PropTypes.bool.isRequired,open:PropTypes.bool,placement:PropTypes.string.isRequired,positionWrapper:PropTypes.bool.isRequired,setArrowRef:PropTypes.func.isRequired,setFloaterRef:PropTypes.func.isRequired,showCloseButton:PropTypes.bool,status:PropTypes.string.isRequired,styles:PropTypes.object.isRequired,title:PropTypes.node});\n\nvar ReactFloaterWrapper=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterWrapper,_React$Component);var _super=_createSuper(ReactFloaterWrapper);function ReactFloaterWrapper(){_classCallCheck(this,ReactFloaterWrapper);return _super.apply(this,arguments);}_createClass(ReactFloaterWrapper,[{key:\"render\",value:function render(){var _this$props=this.props,children=_this$props.children,handleClick=_this$props.handleClick,handleMouseEnter=_this$props.handleMouseEnter,handleMouseLeave=_this$props.handleMouseLeave,setChildRef=_this$props.setChildRef,setWrapperRef=_this$props.setWrapperRef,style=_this$props.style,styles=_this$props.styles;var element;/* istanbul ignore else */if(children){if(React.Children.count(children)===1){if(!/*#__PURE__*/React.isValidElement(children)){element=/*#__PURE__*/React.createElement(\"span\",null,children);}else {var refProp=is[\"function\"](children.type)?'innerRef':'ref';element=/*#__PURE__*/React.cloneElement(React.Children.only(children),_defineProperty({},refProp,setChildRef));}}else {element=children;}}if(!element){return null;}return/*#__PURE__*/React.createElement(\"span\",{ref:setWrapperRef,style:_objectSpread2(_objectSpread2({},styles),style),onClick:handleClick,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave},element);}}]);return ReactFloaterWrapper;}(React.Component);_defineProperty(ReactFloaterWrapper,\"propTypes\",{children:PropTypes.node,handleClick:PropTypes.func.isRequired,handleMouseEnter:PropTypes.func.isRequired,handleMouseLeave:PropTypes.func.isRequired,setChildRef:PropTypes.func.isRequired,setWrapperRef:PropTypes.func.isRequired,style:PropTypes.object,styles:PropTypes.object.isRequired});\n\nvar defaultOptions={zIndex:100};function getStyles(styles){var options=deepmerge(defaultOptions,styles.options||{});return {wrapper:{cursor:'help',display:'inline-flex',flexDirection:'column',zIndex:options.zIndex},wrapperPosition:{left:-1000,position:'absolute',top:-1000,visibility:'hidden'},floater:{display:'inline-block',filter:'drop-shadow(0 0 3px rgba(0, 0, 0, 0.3))',maxWidth:300,opacity:0,position:'relative',transition:'opacity 0.3s',visibility:'hidden',zIndex:options.zIndex},floaterOpening:{opacity:1,visibility:'visible'},floaterWithAnimation:{opacity:1,transition:'opacity 0.3s, transform 0.2s',visibility:'visible'},floaterWithComponent:{maxWidth:'100%'},floaterClosing:{opacity:0,visibility:'visible'},floaterCentered:{left:'50%',position:'fixed',top:'50%',transform:'translate(-50%, -50%)'},container:{backgroundColor:'#fff',color:'#666',minHeight:60,minWidth:200,padding:20,position:'relative',zIndex:10},title:{borderBottom:'1px solid #555',color:'#555',fontSize:18,marginBottom:5,paddingBottom:6,paddingRight:18},content:{fontSize:15},close:{backgroundColor:'transparent',border:0,borderRadius:0,color:'#555',fontSize:0,height:15,outline:'none',padding:10,position:'absolute',right:0,top:0,width:15,WebkitAppearance:'none'},footer:{borderTop:'1px solid #ccc',fontSize:13,marginTop:10,paddingTop:5},arrow:{color:'#fff',display:'inline-flex',length:16,margin:8,position:'absolute',spread:32},options:options};}\n\nvar _excluded=[\"arrow\",\"flip\",\"offset\"];var POSITIONING_PROPS=['position','top','right','bottom','left'];var ReactFloater=/*#__PURE__*/function(_React$Component){_inherits(ReactFloater,_React$Component);var _super=_createSuper(ReactFloater);function ReactFloater(props){var _this;_classCallCheck(this,ReactFloater);_this=_super.call(this,props);/* istanbul ignore else */_defineProperty(_assertThisInitialized(_this),\"setArrowRef\",function(ref){_this.arrowRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setChildRef\",function(ref){_this.childRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setFloaterRef\",function(ref){_this.floaterRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setWrapperRef\",function(ref){_this.wrapperRef=ref;});_defineProperty(_assertThisInitialized(_this),\"handleTransitionEnd\",function(){var status=_this.state.status;var callback=_this.props.callback;/* istanbul ignore else */if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}_this.setState({status:status===STATUS.OPENING?STATUS.OPEN:STATUS.IDLE},function(){var newStatus=_this.state.status;callback(newStatus===STATUS.OPEN?'open':'close',_this.props);});});_defineProperty(_assertThisInitialized(_this),\"handleClick\",function(){var _this$props=_this.props,event=_this$props.event,open=_this$props.open;if(is[\"boolean\"](open))return;var _this$state=_this.state,positionWrapper=_this$state.positionWrapper,status=_this$state.status;/* istanbul ignore else */if(_this.event==='click'||_this.event==='hover'&&positionWrapper){log({title:'click',data:[{event:event,status:status===STATUS.OPEN?'closing':'opening'}],debug:_this.debug});_this.toggle();}});_defineProperty(_assertThisInitialized(_this),\"handleMouseEnter\",function(){var _this$props2=_this.props,event=_this$props2.event,open=_this$props2.open;if(is[\"boolean\"](open)||isMobile())return;var status=_this.state.status;/* istanbul ignore else */if(_this.event==='hover'&&status===STATUS.IDLE){log({title:'mouseEnter',data:[{key:'originalEvent',value:event}],debug:_this.debug});clearTimeout(_this.eventDelayTimeout);_this.toggle();}});_defineProperty(_assertThisInitialized(_this),\"handleMouseLeave\",function(){var _this$props3=_this.props,event=_this$props3.event,eventDelay=_this$props3.eventDelay,open=_this$props3.open;if(is[\"boolean\"](open)||isMobile())return;var _this$state2=_this.state,status=_this$state2.status,positionWrapper=_this$state2.positionWrapper;/* istanbul ignore else */if(_this.event==='hover'){log({title:'mouseLeave',data:[{key:'originalEvent',value:event}],debug:_this.debug});if(!eventDelay){_this.toggle(STATUS.IDLE);}else if([STATUS.OPENING,STATUS.OPEN].indexOf(status)!==-1&&!positionWrapper&&!_this.eventDelayTimeout){_this.eventDelayTimeout=setTimeout(function(){delete _this.eventDelayTimeout;_this.toggle();},eventDelay*1000);}}});_this.state={currentPlacement:props.placement,needsUpdate:false,positionWrapper:props.wrapperOptions.position&&!!props.target,status:STATUS.INIT,statusWrapper:STATUS.INIT};_this._isMounted=false;_this.hasMounted=false;if(canUseDOM){window.addEventListener('load',function(){if(_this.popper){_this.popper.instance.update();}if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}});}return _this;}_createClass(ReactFloater,[{key:\"componentDidMount\",value:function componentDidMount(){if(!canUseDOM)return;var positionWrapper=this.state.positionWrapper;var _this$props5=this.props,children=_this$props5.children,open=_this$props5.open,target=_this$props5.target;this._isMounted=true;log({title:'init',data:{hasChildren:!!children,hasTarget:!!target,isControlled:is[\"boolean\"](open),positionWrapper:positionWrapper,target:this.target,floater:this.floaterRef},debug:this.debug});if(!this.hasMounted){this.initPopper();this.hasMounted=true;}if(!children&&target&&!is[\"boolean\"](open));}},{key:\"componentDidUpdate\",value:function componentDidUpdate(prevProps,prevState){if(!canUseDOM)return;var _this$props6=this.props,autoOpen=_this$props6.autoOpen,open=_this$props6.open,target=_this$props6.target,wrapperOptions=_this$props6.wrapperOptions;var _treeChanges=treeChanges(prevState,this.state),changedFrom=_treeChanges.changedFrom,changed=_treeChanges.changed;if(prevProps.open!==open){var forceStatus;// always follow `open` in controlled mode\nif(is[\"boolean\"](open)){forceStatus=open?STATUS.OPENING:STATUS.CLOSING;}this.toggle(forceStatus);}if(prevProps.wrapperOptions.position!==wrapperOptions.position||prevProps.target!==target){this.changeWrapperPosition(this.props);}if(changed('status',STATUS.IDLE)&&open){this.toggle(STATUS.OPEN);}else if(changedFrom('status',STATUS.INIT,STATUS.IDLE)&&autoOpen){this.toggle(STATUS.OPEN);}if(this.popper&&changed('status',STATUS.OPENING)){this.popper.instance.update();}if(this.floaterRef&&(changed('status',STATUS.OPENING)||changed('status',STATUS.CLOSING))){once(this.floaterRef,'transitionend',this.handleTransitionEnd);}if(changed('needsUpdate',true)){this.rebuildPopper();}}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){if(!canUseDOM)return;this._isMounted=false;if(this.popper){this.popper.instance.destroy();}if(this.wrapperPopper){this.wrapperPopper.instance.destroy();}}},{key:\"initPopper\",value:function initPopper(){var _this2=this;var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.target;var positionWrapper=this.state.positionWrapper;var _this$props7=this.props,disableFlip=_this$props7.disableFlip,getPopper=_this$props7.getPopper,hideArrow=_this$props7.hideArrow,offset=_this$props7.offset,placement=_this$props7.placement,wrapperOptions=_this$props7.wrapperOptions;var flipBehavior=placement==='top'||placement==='bottom'?'flip':['right','bottom-end','top-end','left','top-start','bottom-start'];/* istanbul ignore else */if(placement==='center'){this.setState({status:STATUS.IDLE});}else if(target&&this.floaterRef){var _this$options=this.options,arrow=_this$options.arrow,flip=_this$options.flip,offsetOptions=_this$options.offset,rest=_objectWithoutProperties(_this$options,_excluded);new Popper(target,this.floaterRef,{placement:placement,modifiers:_objectSpread2({arrow:_objectSpread2({enabled:!hideArrow,element:this.arrowRef},arrow),flip:_objectSpread2({enabled:!disableFlip,behavior:flipBehavior},flip),offset:_objectSpread2({offset:\"0, \".concat(offset,\"px\")},offsetOptions)},rest),onCreate:function onCreate(data){var _this2$floaterRef;_this2.popper=data;if(!((_this2$floaterRef=_this2.floaterRef)!==null&&_this2$floaterRef!==void 0&&_this2$floaterRef.isConnected)){_this2.setState({needsUpdate:true});return;}getPopper(data,'floater');if(_this2._isMounted){_this2.setState({currentPlacement:data.placement,status:STATUS.IDLE});}if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}},onUpdate:function onUpdate(data){_this2.popper=data;var currentPlacement=_this2.state.currentPlacement;if(_this2._isMounted&&data.placement!==currentPlacement){_this2.setState({currentPlacement:data.placement});}}});}if(positionWrapper){var wrapperOffset=!is.undefined(wrapperOptions.offset)?wrapperOptions.offset:0;new Popper(this.target,this.wrapperRef,{placement:wrapperOptions.placement||placement,modifiers:{arrow:{enabled:false},offset:{offset:\"0, \".concat(wrapperOffset,\"px\")},flip:{enabled:false}},onCreate:function onCreate(data){_this2.wrapperPopper=data;if(_this2._isMounted){_this2.setState({statusWrapper:STATUS.IDLE});}getPopper(data,'wrapper');if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}}});}}},{key:\"rebuildPopper\",value:function rebuildPopper(){var _this3=this;this.floaterRefInterval=setInterval(function(){var _this3$floaterRef;if((_this3$floaterRef=_this3.floaterRef)!==null&&_this3$floaterRef!==void 0&&_this3$floaterRef.isConnected){clearInterval(_this3.floaterRefInterval);_this3.setState({needsUpdate:false});_this3.initPopper();}},50);}},{key:\"changeWrapperPosition\",value:function changeWrapperPosition(_ref){var target=_ref.target,wrapperOptions=_ref.wrapperOptions;this.setState({positionWrapper:wrapperOptions.position&&!!target});}},{key:\"toggle\",value:function toggle(forceStatus){var status=this.state.status;var nextStatus=status===STATUS.OPEN?STATUS.CLOSING:STATUS.OPENING;if(!is.undefined(forceStatus)){nextStatus=forceStatus;}this.setState({status:nextStatus});}},{key:\"debug\",get:function get(){var debug=this.props.debug;return debug||!!global.ReactFloaterDebug;}},{key:\"event\",get:function get(){var _this$props8=this.props,disableHoverToClick=_this$props8.disableHoverToClick,event=_this$props8.event;if(event==='hover'&&isMobile()&&!disableHoverToClick){return 'click';}return event;}},{key:\"options\",get:function get(){var options=this.props.options;return deepmerge(DEFAULTS,options||{});}},{key:\"styles\",get:function get(){var _this4=this;var _this$state3=this.state,status=_this$state3.status,positionWrapper=_this$state3.positionWrapper,statusWrapper=_this$state3.statusWrapper;var styles=this.props.styles;var nextStyles=deepmerge(getStyles(styles),styles);if(positionWrapper){var wrapperStyles;if(!([STATUS.IDLE].indexOf(status)!==-1)||!([STATUS.IDLE].indexOf(statusWrapper)!==-1)){wrapperStyles=nextStyles.wrapperPosition;}else {wrapperStyles=this.wrapperPopper.styles;}nextStyles.wrapper=_objectSpread2(_objectSpread2({},nextStyles.wrapper),wrapperStyles);}/* istanbul ignore else */if(this.target){var targetStyles=window.getComputedStyle(this.target);/* istanbul ignore else */if(this.wrapperStyles){nextStyles.wrapper=_objectSpread2(_objectSpread2({},nextStyles.wrapper),this.wrapperStyles);}else if(!(['relative','static'].indexOf(targetStyles.position)!==-1)){this.wrapperStyles={};if(!positionWrapper){POSITIONING_PROPS.forEach(function(d){_this4.wrapperStyles[d]=targetStyles[d];});nextStyles.wrapper=_objectSpread2(_objectSpread2({},nextStyles.wrapper),this.wrapperStyles);this.target.style.position='relative';this.target.style.top='auto';this.target.style.right='auto';this.target.style.bottom='auto';this.target.style.left='auto';}}}return nextStyles;}},{key:\"target\",get:function get(){if(!canUseDOM)return null;var target=this.props.target;if(target){if(is.domElement(target)){return target;}return document.querySelector(target);}return this.childRef||this.wrapperRef;}},{key:\"render\",value:function render(){var _this$state4=this.state,currentPlacement=_this$state4.currentPlacement,positionWrapper=_this$state4.positionWrapper,status=_this$state4.status;var _this$props9=this.props,children=_this$props9.children,component=_this$props9.component,content=_this$props9.content,disableAnimation=_this$props9.disableAnimation,footer=_this$props9.footer,hideArrow=_this$props9.hideArrow,id=_this$props9.id,open=_this$props9.open,showCloseButton=_this$props9.showCloseButton,style=_this$props9.style,target=_this$props9.target,title=_this$props9.title;var wrapper=/*#__PURE__*/React.createElement(ReactFloaterWrapper,{handleClick:this.handleClick,handleMouseEnter:this.handleMouseEnter,handleMouseLeave:this.handleMouseLeave,setChildRef:this.setChildRef,setWrapperRef:this.setWrapperRef,style:style,styles:this.styles.wrapper},children);var output={};if(positionWrapper){output.wrapperInPortal=wrapper;}else {output.wrapperAsChildren=wrapper;}return/*#__PURE__*/React.createElement(\"span\",null,/*#__PURE__*/React.createElement(ReactFloaterPortal,{hasChildren:!!children,id:id,placement:currentPlacement,setRef:this.setFloaterRef,target:target,zIndex:this.styles.options.zIndex},/*#__PURE__*/React.createElement(Floater,{component:component,content:content,disableAnimation:disableAnimation,footer:footer,handleClick:this.handleClick,hideArrow:hideArrow||currentPlacement==='center',open:open,placement:currentPlacement,positionWrapper:positionWrapper,setArrowRef:this.setArrowRef,setFloaterRef:this.setFloaterRef,showCloseButton:showCloseButton,status:status,styles:this.styles,title:title}),output.wrapperInPortal),output.wrapperAsChildren);}}]);return ReactFloater;}(React.Component);_defineProperty(ReactFloater,\"propTypes\",{autoOpen:PropTypes.bool,callback:PropTypes.func,children:PropTypes.node,component:isRequiredIf(PropTypes.oneOfType([PropTypes.func,PropTypes.element]),function(props){return !props.content;}),content:isRequiredIf(PropTypes.node,function(props){return !props.component;}),debug:PropTypes.bool,disableAnimation:PropTypes.bool,disableFlip:PropTypes.bool,disableHoverToClick:PropTypes.bool,event:PropTypes.oneOf(['hover','click']),eventDelay:PropTypes.number,footer:PropTypes.node,getPopper:PropTypes.func,hideArrow:PropTypes.bool,id:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),offset:PropTypes.number,open:PropTypes.bool,options:PropTypes.object,placement:PropTypes.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto','center']),showCloseButton:PropTypes.bool,style:PropTypes.object,styles:PropTypes.object,target:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),title:PropTypes.node,wrapperOptions:PropTypes.shape({offset:PropTypes.number,placement:PropTypes.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto']),position:PropTypes.bool})});_defineProperty(ReactFloater,\"defaultProps\",{autoOpen:false,callback:noop,debug:false,disableAnimation:false,disableFlip:false,disableHoverToClick:false,event:'click',eventDelay:0.4,getPopper:noop,hideArrow:false,offset:15,placement:'bottom',showCloseButton:false,styles:{},target:null,wrapperOptions:{position:false}});\n\nexport { ReactFloater as default };\n","import React, { isValidElement } from 'react';\nimport 'prop-types';\nimport treeChanges from 'tree-changes';\nimport is from 'is-lite';\nimport ReactDOM, { createPortal } from 'react-dom';\nimport ExecutionEnvironment from 'exenv';\nimport scroll from 'scroll';\nimport scrollParent from 'scrollparent';\nimport { isValidElementType, Element, ForwardRef, typeOf } from 'react-is';\nimport deepmerge from 'deepmerge';\nimport Floater from 'react-floater';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar ACTIONS = {\n INIT: 'init',\n START: 'start',\n STOP: 'stop',\n RESET: 'reset',\n PREV: 'prev',\n NEXT: 'next',\n GO: 'go',\n CLOSE: 'close',\n SKIP: 'skip',\n UPDATE: 'update'\n};\n\nvar EVENTS = {\n TOUR_START: 'tour:start',\n STEP_BEFORE: 'step:before',\n BEACON: 'beacon',\n TOOLTIP: 'tooltip',\n STEP_AFTER: 'step:after',\n TOUR_END: 'tour:end',\n TOUR_STATUS: 'tour:status',\n TARGET_NOT_FOUND: 'error:target_not_found',\n ERROR: 'error'\n};\n\nvar LIFECYCLE = {\n INIT: 'init',\n READY: 'ready',\n BEACON: 'beacon',\n TOOLTIP: 'tooltip',\n COMPLETE: 'complete',\n ERROR: 'error'\n};\n\nvar STATUS = {\n IDLE: 'idle',\n READY: 'ready',\n WAITING: 'waiting',\n RUNNING: 'running',\n PAUSED: 'paused',\n SKIPPED: 'skipped',\n FINISHED: 'finished',\n ERROR: 'error'\n};\n\nvar canUseDOM = ExecutionEnvironment.canUseDOM;\nvar isReact16 = createPortal !== undefined;\n/**\n * Get the current browser\n *\n * @param {string} userAgent\n *\n * @returns {String}\n */\n\nfunction getBrowser() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;\n var browser = userAgent;\n\n if (typeof window === 'undefined') {\n browser = 'node';\n } else if (document.documentMode) {\n browser = 'ie';\n } else if (/Edge/.test(userAgent)) {\n browser = 'edge';\n } // Opera 8.0+\n else if (Boolean(window.opera) || userAgent.indexOf(' OPR/') >= 0) {\n browser = 'opera';\n } // Firefox 1.0+\n else if (typeof window.InstallTrigger !== 'undefined') {\n browser = 'firefox';\n } // Chrome 1+\n else if (window.chrome) {\n browser = 'chrome';\n } // Safari (and Chrome iOS, Firefox iOS)\n else if (/(Version\\/([0-9._]+).*Safari|CriOS|FxiOS| Mobile\\/)/.test(userAgent)) {\n browser = 'safari';\n }\n\n return browser;\n}\n/**\n * Get the toString Object type\n * @param {*} value\n * @returns {string}\n */\n\nfunction getObjectType(value) {\n return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();\n}\n/**\n * Get text from React components\n *\n * @param {*} root\n *\n * @returns {string}\n */\n\nfunction getText(root) {\n var content = [];\n\n var recurse = function recurse(child) {\n /* istanbul ignore else */\n if (typeof child === 'string' || typeof child === 'number') {\n content.push(child);\n } else if (Array.isArray(child)) {\n child.forEach(function (c) {\n return recurse(c);\n });\n } else if (child && child.props) {\n var children = child.props.children;\n\n if (Array.isArray(children)) {\n children.forEach(function (c) {\n return recurse(c);\n });\n } else {\n recurse(children);\n }\n }\n };\n\n recurse(root);\n return content.join(' ').trim();\n}\nfunction hasOwnProperty(value, key) {\n return Object.prototype.hasOwnProperty.call(value, key);\n}\nfunction hasValidKeys(value, keys) {\n if (!is.plainObject(value) || !is.array(keys)) {\n return false;\n }\n\n return Object.keys(value).every(function (d) {\n return keys.indexOf(d) !== -1;\n });\n}\n/**\n * Convert hex to RGB\n *\n * @param {string} hex\n * @returns {Array}\n */\n\nfunction hexToRGB(hex) {\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var properHex = hex.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(properHex);\n return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : [];\n}\n/**\n * Decide if the step shouldn't skip the beacon\n * @param {Object} step\n *\n * @returns {boolean}\n */\n\nfunction hideBeacon(step) {\n return step.disableBeacon || step.placement === 'center';\n}\n/**\n * Compare if two variables are equal\n *\n * @param {*} left\n * @param {*} right\n *\n * @returns {boolean}\n */\n\nfunction isEqual(left, right) {\n var type;\n var hasReactElement = /*#__PURE__*/isValidElement(left) || /*#__PURE__*/isValidElement(right);\n var hasUndefined = is.undefined(left) || is.undefined(right);\n\n if (getObjectType(left) !== getObjectType(right) || hasReactElement || hasUndefined) {\n return false;\n }\n\n if (is.domElement(left)) {\n return left.isSameNode(right);\n }\n\n if (is.number(left)) {\n return left === right;\n }\n\n if (is[\"function\"](left)) {\n return left.toString() === right.toString();\n }\n\n for (var key in left) {\n /* istanbul ignore else */\n if (hasOwnProperty(left, key)) {\n if (typeof left[key] === 'undefined' || typeof right[key] === 'undefined') {\n return false;\n }\n\n type = getObjectType(left[key]);\n\n if (['object', 'array'].indexOf(type) !== -1 && isEqual(left[key], right[key])) {\n continue;\n }\n\n if (type === 'function' && isEqual(left[key], right[key])) {\n continue;\n }\n\n if (left[key] !== right[key]) {\n return false;\n }\n }\n }\n\n for (var p in right) {\n /* istanbul ignore else */\n if (hasOwnProperty(right, p)) {\n if (typeof left[p] === 'undefined') {\n return false;\n }\n }\n }\n\n return true;\n}\n/**\n * Detect legacy browsers\n *\n * @returns {boolean}\n */\n\nfunction isLegacy() {\n return !(['chrome', 'safari', 'firefox', 'opera'].indexOf(getBrowser()) !== -1);\n}\n/**\n * Log method calls if debug is enabled\n *\n * @private\n * @param {Object} arg\n * @param {string} arg.title - The title the logger was called from\n * @param {Object|Array} [arg.data] - The data to be logged\n * @param {boolean} [arg.warn] - If true, the message will be a warning\n * @param {boolean} [arg.debug] - Nothing will be logged unless debug is true\n */\n\nfunction log(_ref) {\n var title = _ref.title,\n data = _ref.data,\n _ref$warn = _ref.warn,\n warn = _ref$warn === void 0 ? false : _ref$warn,\n _ref$debug = _ref.debug,\n debug = _ref$debug === void 0 ? false : _ref$debug;\n\n /* eslint-disable no-console */\n var logFn = warn ? console.warn || console.error : console.log;\n\n if (debug) {\n if (title && data) {\n console.groupCollapsed(\"%creact-joyride: \".concat(title), 'color: #ff0044; font-weight: bold; font-size: 12px;');\n\n if (Array.isArray(data)) {\n data.forEach(function (d) {\n if (is.plainObject(d) && d.key) {\n logFn.apply(console, [d.key, d.value]);\n } else {\n logFn.apply(console, [d]);\n }\n });\n } else {\n logFn.apply(console, [data]);\n }\n\n console.groupEnd();\n } else {\n console.error('Missing title or data props');\n }\n }\n /* eslint-enable */\n\n}\n\nvar defaultState = {\n action: '',\n controlled: false,\n index: 0,\n lifecycle: LIFECYCLE.INIT,\n size: 0,\n status: STATUS.IDLE\n};\nvar validKeys = ['action', 'index', 'lifecycle', 'status'];\nfunction createStore(props) {\n var store = new Map();\n var data = new Map();\n\n var Store = /*#__PURE__*/function () {\n function Store() {\n var _this = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$continuous = _ref.continuous,\n continuous = _ref$continuous === void 0 ? false : _ref$continuous,\n stepIndex = _ref.stepIndex,\n _ref$steps = _ref.steps,\n _steps = _ref$steps === void 0 ? [] : _ref$steps;\n\n _classCallCheck(this, Store);\n\n _defineProperty(this, \"listener\", void 0);\n\n _defineProperty(this, \"setSteps\", function (steps) {\n var _this$getState = _this.getState(),\n size = _this$getState.size,\n status = _this$getState.status;\n\n var state = {\n size: steps.length,\n status: status\n };\n data.set('steps', steps);\n\n if (status === STATUS.WAITING && !size && steps.length) {\n state.status = STATUS.RUNNING;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(this, \"addListener\", function (listener) {\n _this.listener = listener;\n });\n\n _defineProperty(this, \"update\", function (state) {\n if (!hasValidKeys(state, validKeys)) {\n throw new Error(\"State is not valid. Valid keys: \".concat(validKeys.join(', ')));\n }\n\n _this.setState(_objectSpread2({}, _this.getNextState(_objectSpread2(_objectSpread2(_objectSpread2({}, _this.getState()), state), {}, {\n action: state.action || ACTIONS.UPDATE\n }), true)));\n });\n\n _defineProperty(this, \"start\", function (nextIndex) {\n var _this$getState2 = _this.getState(),\n index = _this$getState2.index,\n size = _this$getState2.size;\n\n _this.setState(_objectSpread2(_objectSpread2({}, _this.getNextState({\n action: ACTIONS.START,\n index: is.number(nextIndex) ? nextIndex : index\n }, true)), {}, {\n status: size ? STATUS.RUNNING : STATUS.WAITING\n }));\n });\n\n _defineProperty(this, \"stop\", function () {\n var advance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var _this$getState3 = _this.getState(),\n index = _this$getState3.index,\n status = _this$getState3.status;\n\n if ([STATUS.FINISHED, STATUS.SKIPPED].indexOf(status) !== -1) return;\n\n _this.setState(_objectSpread2(_objectSpread2({}, _this.getNextState({\n action: ACTIONS.STOP,\n index: index + (advance ? 1 : 0)\n })), {}, {\n status: STATUS.PAUSED\n }));\n });\n\n _defineProperty(this, \"close\", function () {\n var _this$getState4 = _this.getState(),\n index = _this$getState4.index,\n status = _this$getState4.status;\n\n if (status !== STATUS.RUNNING) return;\n\n _this.setState(_objectSpread2({}, _this.getNextState({\n action: ACTIONS.CLOSE,\n index: index + 1\n })));\n });\n\n _defineProperty(this, \"go\", function (nextIndex) {\n var _this$getState5 = _this.getState(),\n controlled = _this$getState5.controlled,\n status = _this$getState5.status;\n\n if (controlled || status !== STATUS.RUNNING) return;\n\n var step = _this.getSteps()[nextIndex];\n\n _this.setState(_objectSpread2(_objectSpread2({}, _this.getNextState({\n action: ACTIONS.GO,\n index: nextIndex\n })), {}, {\n status: step ? status : STATUS.FINISHED\n }));\n });\n\n _defineProperty(this, \"info\", function () {\n return _this.getState();\n });\n\n _defineProperty(this, \"next\", function () {\n var _this$getState6 = _this.getState(),\n index = _this$getState6.index,\n status = _this$getState6.status;\n\n if (status !== STATUS.RUNNING) return;\n\n _this.setState(_this.getNextState({\n action: ACTIONS.NEXT,\n index: index + 1\n }));\n });\n\n _defineProperty(this, \"open\", function () {\n var _this$getState7 = _this.getState(),\n status = _this$getState7.status;\n\n if (status !== STATUS.RUNNING) return;\n\n _this.setState(_objectSpread2({}, _this.getNextState({\n action: ACTIONS.UPDATE,\n lifecycle: LIFECYCLE.TOOLTIP\n })));\n });\n\n _defineProperty(this, \"prev\", function () {\n var _this$getState8 = _this.getState(),\n index = _this$getState8.index,\n status = _this$getState8.status;\n\n if (status !== STATUS.RUNNING) return;\n\n _this.setState(_objectSpread2({}, _this.getNextState({\n action: ACTIONS.PREV,\n index: index - 1\n })));\n });\n\n _defineProperty(this, \"reset\", function () {\n var restart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var _this$getState9 = _this.getState(),\n controlled = _this$getState9.controlled;\n\n if (controlled) return;\n\n _this.setState(_objectSpread2(_objectSpread2({}, _this.getNextState({\n action: ACTIONS.RESET,\n index: 0\n })), {}, {\n status: restart ? STATUS.RUNNING : STATUS.READY\n }));\n });\n\n _defineProperty(this, \"skip\", function () {\n var _this$getState10 = _this.getState(),\n status = _this$getState10.status;\n\n if (status !== STATUS.RUNNING) return;\n\n _this.setState({\n action: ACTIONS.SKIP,\n lifecycle: LIFECYCLE.INIT,\n status: STATUS.SKIPPED\n });\n });\n\n this.setState({\n action: ACTIONS.INIT,\n controlled: is.number(stepIndex),\n continuous: continuous,\n index: is.number(stepIndex) ? stepIndex : 0,\n lifecycle: LIFECYCLE.INIT,\n status: _steps.length ? STATUS.READY : STATUS.IDLE\n }, true);\n this.setSteps(_steps);\n }\n\n _createClass(Store, [{\n key: \"setState\",\n value: function setState(nextState) {\n var initial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var state = this.getState();\n\n var _state$nextState = _objectSpread2(_objectSpread2({}, state), nextState),\n action = _state$nextState.action,\n index = _state$nextState.index,\n lifecycle = _state$nextState.lifecycle,\n size = _state$nextState.size,\n status = _state$nextState.status;\n\n store.set('action', action);\n store.set('index', index);\n store.set('lifecycle', lifecycle);\n store.set('size', size);\n store.set('status', status);\n\n if (initial) {\n store.set('controlled', nextState.controlled);\n store.set('continuous', nextState.continuous);\n }\n /* istanbul ignore else */\n\n\n if (this.listener && this.hasUpdatedState(state)) {\n // console.log('▶ ▶ ▶ NEW STATE', this.getState());\n this.listener(this.getState());\n }\n }\n }, {\n key: \"getState\",\n value: function getState() {\n if (!store.size) {\n return _objectSpread2({}, defaultState);\n }\n\n return {\n action: store.get('action') || '',\n controlled: store.get('controlled') || false,\n index: parseInt(store.get('index'), 10),\n lifecycle: store.get('lifecycle') || '',\n size: store.get('size') || 0,\n status: store.get('status') || ''\n };\n }\n }, {\n key: \"getNextState\",\n value: function getNextState(state) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _this$getState11 = this.getState(),\n action = _this$getState11.action,\n controlled = _this$getState11.controlled,\n index = _this$getState11.index,\n size = _this$getState11.size,\n status = _this$getState11.status;\n\n var newIndex = is.number(state.index) ? state.index : index;\n var nextIndex = controlled && !force ? index : Math.min(Math.max(newIndex, 0), size);\n return {\n action: state.action || action,\n controlled: controlled,\n index: nextIndex,\n lifecycle: state.lifecycle || LIFECYCLE.INIT,\n size: state.size || size,\n status: nextIndex === size ? STATUS.FINISHED : state.status || status\n };\n }\n }, {\n key: \"hasUpdatedState\",\n value: function hasUpdatedState(oldState) {\n var before = JSON.stringify(oldState);\n var after = JSON.stringify(this.getState());\n return before !== after;\n }\n }, {\n key: \"getSteps\",\n value: function getSteps() {\n var steps = data.get('steps');\n return Array.isArray(steps) ? steps : [];\n }\n }, {\n key: \"getHelpers\",\n value: function getHelpers() {\n return {\n close: this.close,\n go: this.go,\n info: this.info,\n next: this.next,\n open: this.open,\n prev: this.prev,\n reset: this.reset,\n skip: this.skip\n };\n }\n }]);\n\n return Store;\n }();\n\n return new Store(props);\n}\n\n/**\n * Find the bounding client rect\n *\n * @private\n * @param {HTMLElement} element - The target element\n * @returns {Object}\n */\n\nfunction getClientRect(element) {\n if (!element) {\n return {};\n }\n\n return element.getBoundingClientRect();\n}\n/**\n * Helper function to get the browser-normalized \"document height\"\n * @returns {Number}\n */\n\nfunction getDocumentHeight() {\n var _document = document,\n body = _document.body,\n html = _document.documentElement;\n\n if (!body || !html) {\n return 0;\n }\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n}\n/**\n * Find and return the target DOM element based on a step's 'target'.\n *\n * @private\n * @param {string|HTMLElement} element\n *\n * @returns {HTMLElement|null}\n */\n\nfunction getElement(element) {\n /* istanbul ignore else */\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n\n return element;\n}\n/**\n * Get computed style property\n *\n * @param {HTMLElement} el\n *\n * @returns {Object}\n */\n\nfunction getStyleComputedProperty(el) {\n if (!el || el.nodeType !== 1) {\n return {};\n }\n\n return getComputedStyle(el);\n}\n/**\n * Get scroll parent with fix\n *\n * @param {HTMLElement} element\n * @param {boolean} skipFix\n * @param {boolean} [forListener]\n *\n * @returns {*}\n */\n\nfunction getScrollParent(element, skipFix, forListener) {\n var parent = scrollParent(element);\n\n if (parent.isSameNode(scrollDoc())) {\n if (forListener) {\n return document;\n }\n\n return scrollDoc();\n }\n\n var hasScrolling = parent.scrollHeight > parent.offsetHeight;\n /* istanbul ignore else */\n\n if (!hasScrolling && !skipFix) {\n parent.style.overflow = 'initial';\n return scrollDoc();\n }\n\n return parent;\n}\n/**\n * Check if the element has custom scroll parent\n *\n * @param {HTMLElement} element\n * @param {boolean} skipFix\n *\n * @returns {boolean}\n */\n\nfunction hasCustomScrollParent(element, skipFix) {\n if (!element) return false;\n var parent = getScrollParent(element, skipFix);\n return !parent.isSameNode(scrollDoc());\n}\n/**\n * Check if the element has custom offset parent\n *\n * @param {HTMLElement} element\n *\n * @returns {boolean}\n */\n\nfunction hasCustomOffsetParent(element) {\n return element.offsetParent !== document.body;\n}\n/**\n * Check if an element has fixed/sticky position\n * @param {HTMLElement|Node} el\n * @param {string} [type]\n *\n * @returns {boolean}\n */\n\nfunction hasPosition(el) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'fixed';\n\n if (!el || !(el instanceof HTMLElement)) {\n return false;\n }\n\n var nodeName = el.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(el).position === type) {\n return true;\n }\n\n return hasPosition(el.parentNode, type);\n}\n/**\n * Check if the element is visible\n *\n * @param {HTMLElement} element\n *\n * @returns {boolean}\n */\n\nfunction isElementVisible(element) {\n if (!element) return false;\n var parentElement = element;\n\n while (parentElement) {\n if (parentElement === document.body) break;\n /* istanbul ignore else */\n\n if (parentElement instanceof HTMLElement) {\n var _getComputedStyle = getComputedStyle(parentElement),\n display = _getComputedStyle.display,\n visibility = _getComputedStyle.visibility;\n\n if (display === 'none' || visibility === 'hidden') {\n return false;\n }\n }\n\n parentElement = parentElement.parentNode;\n }\n\n return true;\n}\n/**\n * Find and return the target DOM element based on a step's 'target'.\n *\n * @private\n * @param {string|HTMLElement} element\n * @param {number} offset\n * @param {boolean} skipFix\n *\n * @returns {HTMLElement|undefined}\n */\n\nfunction getElementPosition(element, offset, skipFix) {\n var elementRect = getClientRect(element);\n var parent = getScrollParent(element, skipFix);\n var hasScrollParent = hasCustomScrollParent(element, skipFix);\n var parentTop = 0;\n /* istanbul ignore else */\n\n if (parent instanceof HTMLElement) {\n parentTop = parent.scrollTop;\n }\n\n var top = elementRect.top + (!hasScrollParent && !hasPosition(element) ? parentTop : 0);\n return Math.floor(top - offset);\n}\n/**\n * Get the offsetTop of each element up to the body\n *\n * @param {HTMLElement} element\n *\n * @returns {number}\n */\n\nfunction getTopOffset(element) {\n if (element instanceof HTMLElement) {\n if (element.offsetParent instanceof HTMLElement) {\n return getTopOffset(element.offsetParent) + element.offsetTop;\n }\n\n return element.offsetTop;\n }\n\n return 0;\n}\n/**\n * Get the scrollTop position\n *\n * @param {HTMLElement} element\n * @param {number} offset\n * @param {boolean} skipFix\n *\n * @returns {number}\n */\n\nfunction getScrollTo(element, offset, skipFix) {\n if (!element) {\n return 0;\n }\n\n var parent = scrollParent(element);\n var top = getTopOffset(element);\n\n if (hasCustomScrollParent(element, skipFix) && !hasCustomOffsetParent(element)) {\n top -= getTopOffset(parent);\n }\n\n return Math.floor(top - offset);\n}\nfunction scrollDoc() {\n return document.scrollingElement || document.createElement('body');\n}\n/**\n * Scroll to position\n * @param {number} value\n * @param {HTMLElement} element\n * @param {number} scrollDuration\n * @returns {Promise<*>}\n */\n\nfunction scrollTo(value) {\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scrollDoc();\n var scrollDuration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n return new Promise(function (resolve, reject) {\n var scrollTop = element.scrollTop;\n var limit = value > scrollTop ? value - scrollTop : scrollTop - value;\n scroll.top(element, value, {\n duration: limit < 100 ? 50 : scrollDuration\n }, function (error) {\n if (error && error.message !== 'Element already at target scroll position') {\n return reject(error);\n }\n\n return resolve();\n });\n });\n}\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n /* istanbul ignore else */\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error(\"Required \".concat(location, \" `\").concat(propFullNameSafe, \"` was not specified in `\").concat(componentNameSafe, \"`.\"));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = new Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(void 0, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\ncreateChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var Component = propValue;\n\n if (! /*#__PURE__*/React.isValidElement(propValue) && isValidElementType(propValue)) {\n var ownProps = {\n ref: function ref() {},\n step: {}\n };\n Component = /*#__PURE__*/React.createElement(Component, ownProps);\n }\n\n if (is.string(propValue) || is.number(propValue) || !isValidElementType(propValue) || !([Element, ForwardRef].indexOf(typeOf(Component)) !== -1)) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(propFullName, \"` supplied to `\").concat(componentName, \"`. Expected a React class or forwardRef.\"));\n }\n\n return undefined;\n});\n\nvar defaultOptions = {\n arrowColor: '#fff',\n backgroundColor: '#fff',\n beaconSize: 36,\n overlayColor: 'rgba(0, 0, 0, 0.5)',\n primaryColor: '#f04',\n spotlightShadow: '0 0 15px rgba(0, 0, 0, 0.5)',\n textColor: '#333',\n zIndex: 100\n};\nvar buttonBase = {\n backgroundColor: 'transparent',\n border: 0,\n borderRadius: 0,\n color: '#555',\n cursor: 'pointer',\n fontSize: 16,\n lineHeight: 1,\n padding: 8,\n WebkitAppearance: 'none'\n};\nvar spotlight = {\n borderRadius: 4,\n position: 'absolute'\n};\nfunction getStyles() {\n var stepStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = deepmerge(defaultOptions, stepStyles.options || {});\n var width = 290;\n\n if (window.innerWidth > 480) {\n width = 380;\n }\n\n if (options.width) {\n if (window.innerWidth < options.width) {\n width = window.innerWidth - 30;\n } else {\n width = options.width; //eslint-disable-line prefer-destructuring\n }\n }\n\n var overlay = {\n bottom: 0,\n left: 0,\n overflow: 'hidden',\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: options.zIndex\n };\n var defaultStyles = {\n beacon: _objectSpread2(_objectSpread2({}, buttonBase), {}, {\n display: 'inline-block',\n height: options.beaconSize,\n position: 'relative',\n width: options.beaconSize,\n zIndex: options.zIndex\n }),\n beaconInner: {\n animation: 'joyride-beacon-inner 1.2s infinite ease-in-out',\n backgroundColor: options.primaryColor,\n borderRadius: '50%',\n display: 'block',\n height: '50%',\n left: '50%',\n opacity: 0.7,\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n width: '50%'\n },\n beaconOuter: {\n animation: 'joyride-beacon-outer 1.2s infinite ease-in-out',\n backgroundColor: \"rgba(\".concat(hexToRGB(options.primaryColor).join(','), \", 0.2)\"),\n border: \"2px solid \".concat(options.primaryColor),\n borderRadius: '50%',\n boxSizing: 'border-box',\n display: 'block',\n height: '100%',\n left: 0,\n opacity: 0.9,\n position: 'absolute',\n top: 0,\n transformOrigin: 'center',\n width: '100%'\n },\n tooltip: {\n backgroundColor: options.backgroundColor,\n borderRadius: 5,\n boxSizing: 'border-box',\n color: options.textColor,\n fontSize: 16,\n maxWidth: '100%',\n padding: 15,\n position: 'relative',\n width: width\n },\n tooltipContainer: {\n lineHeight: 1.4,\n textAlign: 'center'\n },\n tooltipTitle: {\n fontSize: 18,\n margin: 0\n },\n tooltipContent: {\n padding: '20px 10px'\n },\n tooltipFooter: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: 15\n },\n tooltipFooterSpacer: {\n flex: 1\n },\n buttonNext: _objectSpread2(_objectSpread2({}, buttonBase), {}, {\n backgroundColor: options.primaryColor,\n borderRadius: 4,\n color: '#fff'\n }),\n buttonBack: _objectSpread2(_objectSpread2({}, buttonBase), {}, {\n color: options.primaryColor,\n marginLeft: 'auto',\n marginRight: 5\n }),\n buttonClose: _objectSpread2(_objectSpread2({}, buttonBase), {}, {\n color: options.textColor,\n height: 14,\n padding: 15,\n position: 'absolute',\n right: 0,\n top: 0,\n width: 14\n }),\n buttonSkip: _objectSpread2(_objectSpread2({}, buttonBase), {}, {\n color: options.textColor,\n fontSize: 14\n }),\n overlay: _objectSpread2(_objectSpread2({}, overlay), {}, {\n backgroundColor: options.overlayColor,\n mixBlendMode: 'hard-light'\n }),\n overlayLegacy: _objectSpread2({}, overlay),\n overlayLegacyCenter: _objectSpread2(_objectSpread2({}, overlay), {}, {\n backgroundColor: options.overlayColor\n }),\n spotlight: _objectSpread2(_objectSpread2({}, spotlight), {}, {\n backgroundColor: 'gray'\n }),\n spotlightLegacy: _objectSpread2(_objectSpread2({}, spotlight), {}, {\n boxShadow: \"0 0 0 9999px \".concat(options.overlayColor, \", \").concat(options.spotlightShadow)\n }),\n floaterStyles: {\n arrow: {\n color: options.arrowColor\n },\n options: {\n zIndex: options.zIndex + 100\n }\n },\n options: options\n };\n return deepmerge(defaultStyles, stepStyles);\n}\n\nvar DEFAULTS = {\n floaterProps: {\n options: {\n preventOverflow: {\n boundariesElement: 'scrollParent'\n }\n },\n wrapperOptions: {\n offset: -18,\n position: true\n }\n },\n locale: {\n back: 'Back',\n close: 'Close',\n last: 'Last',\n next: 'Next',\n open: 'Open the dialog',\n skip: 'Skip'\n },\n step: {\n event: 'click',\n placement: 'bottom',\n offset: 10\n }\n};\n\nfunction getTourProps(props) {\n var sharedTourProps = ['beaconComponent', 'disableCloseOnEsc', 'disableOverlay', 'disableOverlayClose', 'disableScrolling', 'disableScrollParentFix', 'floaterProps', 'hideBackButton', 'hideCloseButton', 'locale', 'showProgress', 'showSkipButton', 'spotlightClicks', 'spotlightPadding', 'styles', 'tooltipComponent'];\n return Object.keys(props).filter(function (d) {\n return sharedTourProps.indexOf(d) !== -1;\n }).reduce(function (acc, i) {\n acc[i] = props[i]; //eslint-disable-line react/destructuring-assignment\n\n return acc;\n }, {});\n}\n\nfunction getMergedStep(step, props) {\n if (!step) return null;\n var mergedStep = deepmerge.all([getTourProps(props), DEFAULTS.step, step], {\n isMergeableObject: is.plainObject\n });\n var mergedStyles = getStyles(deepmerge(props.styles || {}, step.styles || {}));\n var scrollParent = hasCustomScrollParent(getElement(step.target), mergedStep.disableScrollParentFix);\n var floaterProps = deepmerge.all([props.floaterProps || {}, DEFAULTS.floaterProps, mergedStep.floaterProps || {}]); // Set react-floater props\n\n floaterProps.offset = mergedStep.offset;\n floaterProps.styles = deepmerge(floaterProps.styles || {}, mergedStyles.floaterStyles || {});\n delete mergedStyles.floaterStyles;\n floaterProps.offset += props.spotlightPadding || step.spotlightPadding || 0;\n\n if (step.placementBeacon) {\n floaterProps.wrapperOptions.placement = step.placementBeacon;\n }\n\n if (scrollParent) {\n floaterProps.options.preventOverflow.boundariesElement = 'window';\n }\n\n return _objectSpread2(_objectSpread2({}, mergedStep), {}, {\n locale: deepmerge.all([DEFAULTS.locale, props.locale || {}, mergedStep.locale || {}]),\n floaterProps: floaterProps,\n styles: mergedStyles\n });\n}\n/**\n * Validate if a step is valid\n *\n * @param {Object} step - A step object\n * @param {boolean} debug\n *\n * @returns {boolean} - True if the step is valid, false otherwise\n */\n\nfunction validateStep(step) {\n var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!is.plainObject(step)) {\n log({\n title: 'validateStep',\n data: 'step must be an object',\n warn: true,\n debug: debug\n });\n return false;\n }\n\n if (!step.target) {\n log({\n title: 'validateStep',\n data: 'target is missing from the step',\n warn: true,\n debug: debug\n });\n return false;\n }\n\n return true;\n}\n/**\n * Validate if steps is valid\n *\n * @param {Array} steps - A steps array\n * @param {boolean} debug\n *\n * @returns {boolean} - True if the steps are valid, false otherwise\n */\n\nfunction validateSteps(steps) {\n var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!is.array(steps)) {\n log({\n title: 'validateSteps',\n data: 'steps must be an array',\n warn: true,\n debug: debug\n });\n return false;\n }\n\n return steps.every(function (d) {\n return validateStep(d, debug);\n });\n}\n\nvar Scope = /*#__PURE__*/_createClass(function Scope(_element) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Scope);\n\n _defineProperty(this, \"element\", void 0);\n\n _defineProperty(this, \"options\", void 0);\n\n _defineProperty(this, \"canBeTabbed\", function (element) {\n var tabIndex = element.tabIndex;\n if (tabIndex === null || tabIndex < 0) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return !isTabIndexNaN && _this.canHaveFocus(element);\n });\n\n _defineProperty(this, \"canHaveFocus\", function (element) {\n var validTabNodes = /input|select|textarea|button|object/;\n var nodeName = element.nodeName.toLowerCase();\n var res = validTabNodes.test(nodeName) && !element.getAttribute('disabled') || nodeName === 'a' && !!element.getAttribute('href');\n return res && _this.isVisible(element);\n });\n\n _defineProperty(this, \"findValidTabElements\", function () {\n return [].slice.call(_this.element.querySelectorAll('*'), 0).filter(_this.canBeTabbed);\n });\n\n _defineProperty(this, \"handleKeyDown\", function (e) {\n var _this$options$keyCode = _this.options.keyCode,\n keyCode = _this$options$keyCode === void 0 ? 9 : _this$options$keyCode;\n /* istanbul ignore else */\n\n if (e.keyCode === keyCode) {\n _this.interceptTab(e);\n }\n });\n\n _defineProperty(this, \"interceptTab\", function (event) {\n var elements = _this.findValidTabElements();\n\n if (!elements.length) {\n return;\n }\n\n event.preventDefault();\n var shiftKey = event.shiftKey;\n var x = elements.indexOf(document.activeElement);\n\n if (x === -1 || !shiftKey && x + 1 === elements.length) {\n x = 0;\n } else if (shiftKey && x === 0) {\n x = elements.length - 1;\n } else {\n x += shiftKey ? -1 : 1;\n }\n\n elements[x].focus();\n });\n\n _defineProperty(this, \"isHidden\", function (element) {\n var noSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n var style = window.getComputedStyle(element);\n if (noSize && !element.innerHTML) return true;\n return noSize && style.getPropertyValue('overflow') !== 'visible' || style.getPropertyValue('display') === 'none';\n });\n\n _defineProperty(this, \"isVisible\", function (element) {\n var parentElement = element;\n\n while (parentElement) {\n /* istanbul ignore else */\n if (parentElement instanceof HTMLElement) {\n if (parentElement === document.body) break;\n /* istanbul ignore else */\n\n if (_this.isHidden(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n }\n\n return true;\n });\n\n _defineProperty(this, \"removeScope\", function () {\n window.removeEventListener('keydown', _this.handleKeyDown);\n });\n\n _defineProperty(this, \"checkFocus\", function (target) {\n if (document.activeElement !== target) {\n target.focus();\n window.requestAnimationFrame(function () {\n return _this.checkFocus(target);\n });\n }\n });\n\n _defineProperty(this, \"setFocus\", function () {\n var selector = _this.options.selector;\n if (!selector) return;\n\n var target = _this.element.querySelector(selector);\n /* istanbul ignore else */\n\n\n if (target) {\n window.requestAnimationFrame(function () {\n return _this.checkFocus(target);\n });\n }\n });\n\n if (!(_element instanceof HTMLElement)) {\n throw new TypeError('Invalid parameter: element must be an HTMLElement');\n }\n\n this.element = _element;\n this.options = options;\n window.addEventListener('keydown', this.handleKeyDown, false);\n this.setFocus();\n});\n\nvar JoyrideBeacon = /*#__PURE__*/function (_React$Component) {\n _inherits(JoyrideBeacon, _React$Component);\n\n var _super = _createSuper(JoyrideBeacon);\n\n function JoyrideBeacon(props) {\n var _this;\n\n _classCallCheck(this, JoyrideBeacon);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"setBeaconRef\", function (c) {\n _this.beacon = c;\n });\n\n if (!props.beaconComponent) {\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n var css = \"\\n @keyframes joyride-beacon-inner {\\n 20% {\\n opacity: 0.9;\\n }\\n \\n 90% {\\n opacity: 0.7;\\n }\\n }\\n \\n @keyframes joyride-beacon-outer {\\n 0% {\\n transform: scale(1);\\n }\\n \\n 45% {\\n opacity: 0.7;\\n transform: scale(0.75);\\n }\\n \\n 100% {\\n opacity: 0.9;\\n transform: scale(1);\\n }\\n }\\n \";\n style.type = 'text/css';\n style.id = 'joyride-beacon-animation';\n\n if (props.nonce !== undefined) {\n style.setAttribute('nonce', props.nonce);\n }\n\n style.appendChild(document.createTextNode(css));\n head.appendChild(style);\n }\n\n return _this;\n }\n\n _createClass(JoyrideBeacon, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var shouldFocus = this.props.shouldFocus;\n\n setTimeout(function () {\n if (is.domElement(_this2.beacon) && shouldFocus) {\n _this2.beacon.focus();\n }\n }, 0);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var style = document.getElementById('joyride-beacon-animation');\n\n if (style) {\n style.parentNode.removeChild(style);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n beaconComponent = _this$props.beaconComponent,\n locale = _this$props.locale,\n onClickOrHover = _this$props.onClickOrHover,\n styles = _this$props.styles;\n var props = {\n 'aria-label': locale.open,\n onClick: onClickOrHover,\n onMouseEnter: onClickOrHover,\n ref: this.setBeaconRef,\n title: locale.open\n };\n var component;\n\n if (beaconComponent) {\n var BeaconComponent = beaconComponent;\n component = /*#__PURE__*/React.createElement(BeaconComponent, props);\n } else {\n component = /*#__PURE__*/React.createElement(\"button\", _extends({\n key: \"JoyrideBeacon\",\n className: \"react-joyride__beacon\",\n style: styles.beacon,\n type: \"button\"\n }, props), /*#__PURE__*/React.createElement(\"span\", {\n style: styles.beaconInner\n }), /*#__PURE__*/React.createElement(\"span\", {\n style: styles.beaconOuter\n }));\n }\n\n return component;\n }\n }]);\n\n return JoyrideBeacon;\n}(React.Component);\n\nfunction JoyrideSpotlight(_ref) {\n var styles = _ref.styles;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"JoyrideSpotlight\",\n className: \"react-joyride__spotlight\",\n style: styles\n });\n}\n\nvar _excluded$2 = [\"mixBlendMode\", \"zIndex\"];\n\nvar JoyrideOverlay = /*#__PURE__*/function (_React$Component) {\n _inherits(JoyrideOverlay, _React$Component);\n\n var _super = _createSuper(JoyrideOverlay);\n\n function JoyrideOverlay() {\n var _this;\n\n _classCallCheck(this, JoyrideOverlay);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"_isMounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n mouseOverSpotlight: false,\n isScrolling: false,\n showSpotlight: true\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n var mouseOverSpotlight = _this.state.mouseOverSpotlight;\n var _this$spotlightStyles = _this.spotlightStyles,\n height = _this$spotlightStyles.height,\n left = _this$spotlightStyles.left,\n position = _this$spotlightStyles.position,\n top = _this$spotlightStyles.top,\n width = _this$spotlightStyles.width;\n var offsetY = position === 'fixed' ? e.clientY : e.pageY;\n var offsetX = position === 'fixed' ? e.clientX : e.pageX;\n var inSpotlightHeight = offsetY >= top && offsetY <= top + height;\n var inSpotlightWidth = offsetX >= left && offsetX <= left + width;\n var inSpotlight = inSpotlightWidth && inSpotlightHeight;\n\n if (inSpotlight !== mouseOverSpotlight) {\n _this.updateState({\n mouseOverSpotlight: inSpotlight\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleScroll\", function () {\n var target = _this.props.target;\n var element = getElement(target);\n\n if (_this.scrollParent !== document) {\n var isScrolling = _this.state.isScrolling;\n\n if (!isScrolling) {\n _this.updateState({\n isScrolling: true,\n showSpotlight: false\n });\n }\n\n clearTimeout(_this.scrollTimeout);\n _this.scrollTimeout = setTimeout(function () {\n _this.updateState({\n isScrolling: false,\n showSpotlight: true\n });\n }, 50);\n } else if (hasPosition(element, 'sticky')) {\n _this.updateState({});\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleResize\", function () {\n clearTimeout(_this.resizeTimeout);\n _this.resizeTimeout = setTimeout(function () {\n if (!_this._isMounted) {\n return;\n }\n\n _this.forceUpdate();\n }, 100);\n });\n\n return _this;\n }\n\n _createClass(JoyrideOverlay, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props;\n _this$props.debug;\n _this$props.disableScrolling;\n var disableScrollParentFix = _this$props.disableScrollParentFix,\n target = _this$props.target;\n var element = getElement(target);\n this.scrollParent = getScrollParent(element, disableScrollParentFix, true);\n this._isMounted = true;\n\n window.addEventListener('resize', this.handleResize);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n lifecycle = _this$props2.lifecycle,\n spotlightClicks = _this$props2.spotlightClicks;\n\n var _treeChanges = treeChanges(prevProps, this.props),\n changed = _treeChanges.changed;\n /* istanbul ignore else */\n\n\n if (changed('lifecycle', LIFECYCLE.TOOLTIP)) {\n this.scrollParent.addEventListener('scroll', this.handleScroll, {\n passive: true\n });\n setTimeout(function () {\n var isScrolling = _this2.state.isScrolling;\n\n if (!isScrolling) {\n _this2.updateState({\n showSpotlight: true\n });\n }\n }, 100);\n }\n\n if (changed('spotlightClicks') || changed('disableOverlay') || changed('lifecycle')) {\n if (spotlightClicks && lifecycle === LIFECYCLE.TOOLTIP) {\n window.addEventListener('mousemove', this.handleMouseMove, false);\n } else if (lifecycle !== LIFECYCLE.TOOLTIP) {\n window.removeEventListener('mousemove', this.handleMouseMove);\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._isMounted = false;\n window.removeEventListener('mousemove', this.handleMouseMove);\n window.removeEventListener('resize', this.handleResize);\n clearTimeout(this.resizeTimeout);\n clearTimeout(this.scrollTimeout);\n this.scrollParent.removeEventListener('scroll', this.handleScroll);\n }\n }, {\n key: \"spotlightStyles\",\n get: function get() {\n var showSpotlight = this.state.showSpotlight;\n var _this$props3 = this.props,\n disableScrollParentFix = _this$props3.disableScrollParentFix,\n spotlightClicks = _this$props3.spotlightClicks,\n spotlightPadding = _this$props3.spotlightPadding,\n styles = _this$props3.styles,\n target = _this$props3.target;\n var element = getElement(target);\n var elementRect = getClientRect(element);\n var isFixedTarget = hasPosition(element);\n var top = getElementPosition(element, spotlightPadding, disableScrollParentFix);\n return _objectSpread2(_objectSpread2({}, isLegacy() ? styles.spotlightLegacy : styles.spotlight), {}, {\n height: Math.round(elementRect.height + spotlightPadding * 2),\n left: Math.round(elementRect.left - spotlightPadding),\n opacity: showSpotlight ? 1 : 0,\n pointerEvents: spotlightClicks ? 'none' : 'auto',\n position: isFixedTarget ? 'fixed' : 'absolute',\n top: top,\n transition: 'opacity 0.2s',\n width: Math.round(elementRect.width + spotlightPadding * 2)\n });\n }\n }, {\n key: \"updateState\",\n value: function updateState(state) {\n if (!this._isMounted) {\n return;\n }\n\n this.setState(state);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state = this.state,\n mouseOverSpotlight = _this$state.mouseOverSpotlight,\n showSpotlight = _this$state.showSpotlight;\n var _this$props4 = this.props,\n disableOverlay = _this$props4.disableOverlay,\n disableOverlayClose = _this$props4.disableOverlayClose,\n lifecycle = _this$props4.lifecycle,\n onClickOverlay = _this$props4.onClickOverlay,\n placement = _this$props4.placement,\n styles = _this$props4.styles;\n\n if (disableOverlay || lifecycle !== LIFECYCLE.TOOLTIP) {\n return null;\n }\n\n var baseStyles = styles.overlay;\n /* istanbul ignore else */\n\n if (isLegacy()) {\n baseStyles = placement === 'center' ? styles.overlayLegacyCenter : styles.overlayLegacy;\n }\n\n var stylesOverlay = _objectSpread2({\n cursor: disableOverlayClose ? 'default' : 'pointer',\n height: getDocumentHeight(),\n pointerEvents: mouseOverSpotlight ? 'none' : 'auto'\n }, baseStyles);\n\n var spotlight = placement !== 'center' && showSpotlight && /*#__PURE__*/React.createElement(JoyrideSpotlight, {\n styles: this.spotlightStyles\n }); // Hack for Safari bug with mix-blend-mode with z-index\n\n if (getBrowser() === 'safari') {\n stylesOverlay.mixBlendMode;\n stylesOverlay.zIndex;\n var safarOverlay = _objectWithoutProperties(stylesOverlay, _excluded$2);\n\n spotlight = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread2({}, safarOverlay)\n }, spotlight);\n delete stylesOverlay.backgroundColor;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-joyride__overlay\",\n style: stylesOverlay,\n onClick: onClickOverlay\n }, spotlight);\n }\n }]);\n\n return JoyrideOverlay;\n}(React.Component);\n\nvar _excluded$1 = [\"styles\"],\n _excluded2 = [\"color\", \"height\", \"width\"];\n\nfunction JoyrideTooltipCloseBtn(_ref) {\n var styles = _ref.styles,\n props = _objectWithoutProperties(_ref, _excluded$1);\n\n var color = styles.color,\n height = styles.height,\n width = styles.width,\n style = _objectWithoutProperties(styles, _excluded2);\n\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n style: style,\n type: \"button\"\n }, props), /*#__PURE__*/React.createElement(\"svg\", {\n width: typeof width === 'number' ? \"\".concat(width, \"px\") : width,\n height: typeof height === 'number' ? \"\".concat(height, \"px\") : height,\n viewBox: \"0 0 18 18\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"xMidYMid\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.13911129,9.00268191 L0.171521827,17.0258467 C-0.0498027049,17.248715 -0.0498027049,17.6098394 0.171521827,17.8327545 C0.28204354,17.9443526 0.427188206,17.9998706 0.572051765,17.9998706 C0.71714958,17.9998706 0.862013139,17.9443526 0.972581703,17.8327545 L9.0000937,9.74924618 L17.0276057,17.8327545 C17.1384085,17.9443526 17.2832721,17.9998706 17.4281356,17.9998706 C17.5729992,17.9998706 17.718097,17.9443526 17.8286656,17.8327545 C18.0499901,17.6098862 18.0499901,17.2487618 17.8286656,17.0258467 L9.86135722,9.00268191 L17.8340066,0.973848225 C18.0553311,0.750979934 18.0553311,0.389855532 17.8340066,0.16694039 C17.6126821,-0.0556467968 17.254037,-0.0556467968 17.0329467,0.16694039 L9.00042166,8.25611765 L0.967006424,0.167268345 C0.745681892,-0.0553188426 0.387317931,-0.0553188426 0.165993399,0.167268345 C-0.0553311331,0.390136635 -0.0553311331,0.751261038 0.165993399,0.974176179 L8.13920499,9.00268191 L8.13911129,9.00268191 Z\",\n fill: color\n }))));\n}\n\nvar JoyrideTooltipContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(JoyrideTooltipContainer, _React$Component);\n\n var _super = _createSuper(JoyrideTooltipContainer);\n\n function JoyrideTooltipContainer() {\n _classCallCheck(this, JoyrideTooltipContainer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(JoyrideTooltipContainer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n backProps = _this$props.backProps,\n closeProps = _this$props.closeProps,\n continuous = _this$props.continuous,\n index = _this$props.index,\n isLastStep = _this$props.isLastStep,\n primaryProps = _this$props.primaryProps,\n size = _this$props.size,\n skipProps = _this$props.skipProps,\n step = _this$props.step,\n tooltipProps = _this$props.tooltipProps;\n var content = step.content,\n hideBackButton = step.hideBackButton,\n hideCloseButton = step.hideCloseButton,\n hideFooter = step.hideFooter,\n showProgress = step.showProgress,\n showSkipButton = step.showSkipButton,\n title = step.title,\n styles = step.styles;\n var _step$locale = step.locale,\n back = _step$locale.back,\n close = _step$locale.close,\n last = _step$locale.last,\n next = _step$locale.next,\n skip = _step$locale.skip;\n var output = {\n primary: close\n };\n\n if (continuous) {\n output.primary = isLastStep ? last : next;\n\n if (showProgress) {\n output.primary = /*#__PURE__*/React.createElement(\"span\", null, output.primary, \" (\", index + 1, \"/\", size, \")\");\n }\n }\n\n if (showSkipButton && !isLastStep) {\n output.skip = /*#__PURE__*/React.createElement(\"button\", _extends({\n style: styles.buttonSkip,\n type: \"button\",\n \"aria-live\": \"off\"\n }, skipProps), skip);\n }\n\n if (!hideBackButton && index > 0) {\n output.back = /*#__PURE__*/React.createElement(\"button\", _extends({\n style: styles.buttonBack,\n type: \"button\"\n }, backProps), back);\n }\n\n output.close = !hideCloseButton && /*#__PURE__*/React.createElement(JoyrideTooltipCloseBtn, _extends({\n styles: styles.buttonClose\n }, closeProps));\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n key: \"JoyrideTooltip\",\n className: \"react-joyride__tooltip\",\n style: styles.tooltip\n }, tooltipProps), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.tooltipContainer\n }, title && /*#__PURE__*/React.createElement(\"h4\", {\n style: styles.tooltipTitle,\n \"aria-label\": title\n }, title), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.tooltipContent\n }, content)), !hideFooter && /*#__PURE__*/React.createElement(\"div\", {\n style: styles.tooltipFooter\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.tooltipFooterSpacer\n }, output.skip), output.back, /*#__PURE__*/React.createElement(\"button\", _extends({\n style: styles.buttonNext,\n type: \"button\"\n }, primaryProps), output.primary)), output.close);\n }\n }]);\n\n return JoyrideTooltipContainer;\n}(React.Component);\n\nvar _excluded = [\"beaconComponent\", \"tooltipComponent\"];\n\nvar JoyrideTooltip = /*#__PURE__*/function (_React$Component) {\n _inherits(JoyrideTooltip, _React$Component);\n\n var _super = _createSuper(JoyrideTooltip);\n\n function JoyrideTooltip() {\n var _this;\n\n _classCallCheck(this, JoyrideTooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickBack\", function (e) {\n e.preventDefault();\n var helpers = _this.props.helpers;\n helpers.prev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickClose\", function (e) {\n e.preventDefault();\n var helpers = _this.props.helpers;\n helpers.close();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickPrimary\", function (e) {\n e.preventDefault();\n var _this$props = _this.props,\n continuous = _this$props.continuous,\n helpers = _this$props.helpers;\n\n if (!continuous) {\n helpers.close();\n return;\n }\n\n helpers.next();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickSkip\", function (e) {\n e.preventDefault();\n var helpers = _this.props.helpers;\n helpers.skip();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getElementsProps\", function () {\n var _this$props2 = _this.props,\n continuous = _this$props2.continuous,\n isLastStep = _this$props2.isLastStep,\n setTooltipRef = _this$props2.setTooltipRef,\n step = _this$props2.step;\n var back = getText(step.locale.back);\n var close = getText(step.locale.close);\n var last = getText(step.locale.last);\n var next = getText(step.locale.next);\n var skip = getText(step.locale.skip);\n var primaryText = continuous ? next : close;\n\n if (isLastStep) {\n primaryText = last;\n }\n\n return {\n backProps: {\n 'aria-label': back,\n 'data-action': 'back',\n onClick: _this.handleClickBack,\n role: 'button',\n title: back\n },\n closeProps: {\n 'aria-label': close,\n 'data-action': 'close',\n onClick: _this.handleClickClose,\n role: 'button',\n title: close\n },\n primaryProps: {\n 'aria-label': primaryText,\n 'data-action': 'primary',\n onClick: _this.handleClickPrimary,\n role: 'button',\n title: primaryText\n },\n skipProps: {\n 'aria-label': skip,\n 'data-action': 'skip',\n onClick: _this.handleClickSkip,\n role: 'button',\n title: skip\n },\n tooltipProps: {\n 'aria-modal': true,\n ref: setTooltipRef,\n role: 'alertdialog'\n }\n };\n });\n\n return _this;\n }\n\n _createClass(JoyrideTooltip, [{\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n continuous = _this$props3.continuous,\n index = _this$props3.index,\n isLastStep = _this$props3.isLastStep,\n size = _this$props3.size,\n step = _this$props3.step;\n\n step.beaconComponent;\n var tooltipComponent = step.tooltipComponent,\n cleanStep = _objectWithoutProperties(step, _excluded);\n\n var component;\n\n if (tooltipComponent) {\n var renderProps = _objectSpread2(_objectSpread2({}, this.getElementsProps()), {}, {\n continuous: continuous,\n index: index,\n isLastStep: isLastStep,\n size: size,\n step: cleanStep\n });\n\n var TooltipComponent = tooltipComponent;\n component = /*#__PURE__*/React.createElement(TooltipComponent, renderProps);\n } else {\n component = /*#__PURE__*/React.createElement(JoyrideTooltipContainer, _extends({}, this.getElementsProps(), {\n continuous: continuous,\n index: index,\n isLastStep: isLastStep,\n size: size,\n step: step\n }));\n }\n\n return component;\n }\n }]);\n\n return JoyrideTooltip;\n}(React.Component);\n\nvar JoyridePortal = /*#__PURE__*/function (_React$Component) {\n _inherits(JoyridePortal, _React$Component);\n\n var _super = _createSuper(JoyridePortal);\n\n function JoyridePortal() {\n _classCallCheck(this, JoyridePortal);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(JoyridePortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!canUseDOM) return;\n\n if (!isReact16) {\n this.renderReact15();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!canUseDOM) return;\n\n if (!isReact16) {\n this.renderReact15();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!canUseDOM || !this.node) return;\n\n if (!isReact16) {\n ReactDOM.unmountComponentAtNode(this.node);\n }\n\n if (this.node.parentNode === document.body) {\n document.body.removeChild(this.node);\n this.node = undefined;\n }\n }\n }, {\n key: \"appendNode\",\n value: function appendNode() {\n var id = this.props.id;\n\n if (!this.node) {\n this.node = document.createElement('div');\n /* istanbul ignore else */\n\n if (id) {\n this.node.id = id;\n }\n\n document.body.appendChild(this.node);\n }\n }\n }, {\n key: \"renderReact15\",\n value: function renderReact15() {\n if (!canUseDOM) return null;\n var children = this.props.children;\n\n if (!this.node) {\n this.appendNode();\n }\n\n ReactDOM.unstable_renderSubtreeIntoContainer(this, children, this.node);\n return null;\n }\n }, {\n key: \"renderReact16\",\n value: function renderReact16() {\n if (!canUseDOM || !isReact16) return null;\n var children = this.props.children;\n\n if (!this.node) {\n this.appendNode();\n }\n\n return /*#__PURE__*/ReactDOM.createPortal(children, this.node);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!isReact16) {\n return null;\n }\n\n return this.renderReact16();\n }\n }]);\n\n return JoyridePortal;\n}(React.Component);\n\nvar JoyrideStep = /*#__PURE__*/function (_React$Component) {\n _inherits(JoyrideStep, _React$Component);\n\n var _super = _createSuper(JoyrideStep);\n\n function JoyrideStep() {\n var _this;\n\n _classCallCheck(this, JoyrideStep);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"scope\", {\n removeScope: function removeScope() {}\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickHoverBeacon\", function (e) {\n var _this$props = _this.props,\n step = _this$props.step,\n update = _this$props.update;\n\n if (e.type === 'mouseenter' && step.event !== 'hover') {\n return;\n }\n\n update({\n lifecycle: LIFECYCLE.TOOLTIP\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickOverlay\", function () {\n var _this$props2 = _this.props,\n helpers = _this$props2.helpers,\n step = _this$props2.step;\n\n if (!step.disableOverlayClose) {\n helpers.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setTooltipRef\", function (c) {\n _this.tooltip = c;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPopper\", function (popper, type) {\n var _this$props3 = _this.props,\n action = _this$props3.action,\n setPopper = _this$props3.setPopper,\n update = _this$props3.update;\n\n if (type === 'wrapper') {\n _this.beaconPopper = popper;\n } else {\n _this.tooltipPopper = popper;\n }\n\n setPopper(popper, type);\n\n if (_this.beaconPopper && _this.tooltipPopper) {\n update({\n action: action === ACTIONS.CLOSE ? ACTIONS.CLOSE : action,\n lifecycle: LIFECYCLE.READY\n });\n }\n });\n\n return _this;\n }\n\n _createClass(JoyrideStep, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props4 = this.props,\n debug = _this$props4.debug,\n index = _this$props4.index;\n log({\n title: \"step:\".concat(index),\n data: [{\n key: 'props',\n value: this.props\n }],\n debug: debug\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props5 = this.props,\n action = _this$props5.action,\n callback = _this$props5.callback,\n continuous = _this$props5.continuous,\n controlled = _this$props5.controlled,\n debug = _this$props5.debug,\n index = _this$props5.index,\n lifecycle = _this$props5.lifecycle,\n size = _this$props5.size,\n status = _this$props5.status,\n step = _this$props5.step,\n update = _this$props5.update;\n\n var _treeChanges = treeChanges(prevProps, this.props),\n changed = _treeChanges.changed,\n changedFrom = _treeChanges.changedFrom;\n\n var state = {\n action: action,\n controlled: controlled,\n index: index,\n lifecycle: lifecycle,\n size: size,\n status: status\n };\n var skipBeacon = continuous && action !== ACTIONS.CLOSE && (index > 0 || action === ACTIONS.PREV);\n var hasStoreChanged = changed('action') || changed('index') || changed('lifecycle') || changed('status');\n var hasStarted = changedFrom('lifecycle', [LIFECYCLE.TOOLTIP, LIFECYCLE.INIT], LIFECYCLE.INIT);\n var isAfterAction = changed('action', [ACTIONS.NEXT, ACTIONS.PREV, ACTIONS.SKIP, ACTIONS.CLOSE]);\n\n if (isAfterAction && (hasStarted || controlled)) {\n callback(_objectSpread2(_objectSpread2({}, state), {}, {\n index: prevProps.index,\n lifecycle: LIFECYCLE.COMPLETE,\n step: prevProps.step,\n type: EVENTS.STEP_AFTER\n }));\n }\n\n if (step.placement === 'center' && status === STATUS.RUNNING && changed('index') && action !== ACTIONS.START && lifecycle === LIFECYCLE.INIT) {\n update({\n lifecycle: LIFECYCLE.READY\n });\n } // There's a step to use, but there's no target in the DOM\n\n\n if (hasStoreChanged) {\n var element = getElement(step.target);\n var elementExists = !!element;\n var hasRenderedTarget = elementExists && isElementVisible(element);\n\n if (hasRenderedTarget) {\n if (changedFrom('status', STATUS.READY, STATUS.RUNNING) || changedFrom('lifecycle', LIFECYCLE.INIT, LIFECYCLE.READY)) {\n callback(_objectSpread2(_objectSpread2({}, state), {}, {\n step: step,\n type: EVENTS.STEP_BEFORE\n }));\n }\n } else {\n console.warn(elementExists ? 'Target not visible' : 'Target not mounted', step); //eslint-disable-line no-console\n\n callback(_objectSpread2(_objectSpread2({}, state), {}, {\n type: EVENTS.TARGET_NOT_FOUND,\n step: step\n }));\n\n if (!controlled) {\n update({\n index: index + ([ACTIONS.PREV].indexOf(action) !== -1 ? -1 : 1)\n });\n }\n }\n }\n\n if (changedFrom('lifecycle', LIFECYCLE.INIT, LIFECYCLE.READY)) {\n update({\n lifecycle: hideBeacon(step) || skipBeacon ? LIFECYCLE.TOOLTIP : LIFECYCLE.BEACON\n });\n }\n\n if (changed('index')) {\n log({\n title: \"step:\".concat(lifecycle),\n data: [{\n key: 'props',\n value: this.props\n }],\n debug: debug\n });\n }\n /* istanbul ignore else */\n\n\n if (changed('lifecycle', LIFECYCLE.BEACON)) {\n callback(_objectSpread2(_objectSpread2({}, state), {}, {\n step: step,\n type: EVENTS.BEACON\n }));\n }\n\n if (changed('lifecycle', LIFECYCLE.TOOLTIP)) {\n callback(_objectSpread2(_objectSpread2({}, state), {}, {\n step: step,\n type: EVENTS.TOOLTIP\n }));\n this.scope = new Scope(this.tooltip, {\n selector: '[data-action=primary]'\n });\n this.scope.setFocus();\n }\n\n if (changedFrom('lifecycle', [LIFECYCLE.TOOLTIP, LIFECYCLE.INIT], LIFECYCLE.INIT)) {\n this.scope.removeScope();\n delete this.beaconPopper;\n delete this.tooltipPopper;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.scope.removeScope();\n }\n /**\n * Beacon click/hover event listener\n *\n * @param {Event} e\n */\n\n }, {\n key: \"open\",\n get: function get() {\n var _this$props6 = this.props,\n step = _this$props6.step,\n lifecycle = _this$props6.lifecycle;\n return !!(hideBeacon(step) || lifecycle === LIFECYCLE.TOOLTIP);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n continuous = _this$props7.continuous,\n debug = _this$props7.debug,\n helpers = _this$props7.helpers,\n index = _this$props7.index,\n lifecycle = _this$props7.lifecycle,\n nonce = _this$props7.nonce,\n shouldScroll = _this$props7.shouldScroll,\n size = _this$props7.size,\n step = _this$props7.step;\n var target = getElement(step.target);\n\n if (!validateStep(step) || !is.domElement(target)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"JoyrideStep-\".concat(index),\n className: \"react-joyride__step\"\n }, /*#__PURE__*/React.createElement(JoyridePortal, {\n id: \"react-joyride-portal\"\n }, /*#__PURE__*/React.createElement(JoyrideOverlay, _extends({}, step, {\n debug: debug,\n lifecycle: lifecycle,\n onClickOverlay: this.handleClickOverlay\n }))), /*#__PURE__*/React.createElement(Floater, _extends({\n component: /*#__PURE__*/React.createElement(JoyrideTooltip, {\n continuous: continuous,\n helpers: helpers,\n index: index,\n isLastStep: index + 1 === size,\n setTooltipRef: this.setTooltipRef,\n size: size,\n step: step\n }),\n debug: debug,\n getPopper: this.setPopper,\n id: \"react-joyride-step-\".concat(index),\n isPositioned: step.isFixed || hasPosition(target),\n open: this.open,\n placement: step.placement,\n target: step.target\n }, step.floaterProps), /*#__PURE__*/React.createElement(JoyrideBeacon, {\n beaconComponent: step.beaconComponent,\n locale: step.locale,\n nonce: nonce,\n onClickOrHover: this.handleClickHoverBeacon,\n shouldFocus: shouldScroll,\n styles: step.styles\n })));\n }\n }]);\n\n return JoyrideStep;\n}(React.Component);\n\nvar Joyride = /*#__PURE__*/function (_React$Component) {\n _inherits(Joyride, _React$Component);\n\n var _super = _createSuper(Joyride);\n\n function Joyride(props) {\n var _this;\n\n _classCallCheck(this, Joyride);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"initStore\", function () {\n var _this$props = _this.props,\n debug = _this$props.debug,\n getHelpers = _this$props.getHelpers,\n run = _this$props.run,\n stepIndex = _this$props.stepIndex;\n _this.store = new createStore(_objectSpread2(_objectSpread2({}, _this.props), {}, {\n controlled: run && is.number(stepIndex)\n }));\n _this.helpers = _this.store.getHelpers();\n var addListener = _this.store.addListener;\n log({\n title: 'init',\n data: [{\n key: 'props',\n value: _this.props\n }, {\n key: 'state',\n value: _this.state\n }],\n debug: debug\n }); // Sync the store to this component's state.\n\n addListener(_this.syncState);\n getHelpers(_this.helpers);\n return _this.store.getState();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"callback\", function (data) {\n var callback = _this.props.callback;\n /* istanbul ignore else */\n\n if (is[\"function\"](callback)) {\n callback(data);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyboard\", function (e) {\n var _this$state = _this.state,\n index = _this$state.index,\n lifecycle = _this$state.lifecycle;\n var steps = _this.props.steps;\n var step = steps[index];\n var intKey = window.Event ? e.which : e.keyCode;\n\n if (lifecycle === LIFECYCLE.TOOLTIP) {\n if (intKey === 27 && step && !step.disableCloseOnEsc) {\n _this.store.close();\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"syncState\", function (state) {\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPopper\", function (popper, type) {\n if (type === 'wrapper') {\n _this.beaconPopper = popper;\n } else {\n _this.tooltipPopper = popper;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"shouldScroll\", function (disableScrolling, index, scrollToFirstStep, lifecycle, step, target, prevState) {\n return !disableScrolling && (index !== 0 || scrollToFirstStep || lifecycle === LIFECYCLE.TOOLTIP) && step.placement !== 'center' && (!step.isFixed || !hasPosition(target)) && // fixed steps don't need to scroll\n prevState.lifecycle !== lifecycle && [LIFECYCLE.BEACON, LIFECYCLE.TOOLTIP].indexOf(lifecycle) !== -1;\n });\n\n _this.state = _this.initStore();\n return _this;\n }\n\n _createClass(Joyride, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!canUseDOM) return;\n var _this$props2 = this.props,\n disableCloseOnEsc = _this$props2.disableCloseOnEsc,\n debug = _this$props2.debug,\n run = _this$props2.run,\n steps = _this$props2.steps;\n var start = this.store.start;\n\n if (validateSteps(steps, debug) && run) {\n start();\n }\n /* istanbul ignore else */\n\n\n if (!disableCloseOnEsc) {\n document.body.addEventListener('keydown', this.handleKeyboard, {\n passive: true\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (!canUseDOM) return;\n var _this$state2 = this.state,\n action = _this$state2.action,\n controlled = _this$state2.controlled,\n index = _this$state2.index,\n lifecycle = _this$state2.lifecycle,\n status = _this$state2.status;\n var _this$props3 = this.props,\n debug = _this$props3.debug,\n run = _this$props3.run,\n stepIndex = _this$props3.stepIndex,\n steps = _this$props3.steps;\n var prevSteps = prevProps.steps,\n prevStepIndex = prevProps.stepIndex;\n var _this$store = this.store,\n reset = _this$store.reset,\n setSteps = _this$store.setSteps,\n start = _this$store.start,\n stop = _this$store.stop,\n update = _this$store.update;\n\n var _treeChanges = treeChanges(prevProps, this.props),\n changedProps = _treeChanges.changed;\n\n var _treeChanges2 = treeChanges(prevState, this.state),\n changed = _treeChanges2.changed,\n changedFrom = _treeChanges2.changedFrom;\n\n var step = getMergedStep(steps[index], this.props);\n var stepsChanged = !isEqual(prevSteps, steps);\n var stepIndexChanged = is.number(stepIndex) && changedProps('stepIndex');\n var target = getElement(step === null || step === void 0 ? void 0 : step.target);\n\n if (stepsChanged) {\n if (validateSteps(steps, debug)) {\n setSteps(steps);\n } else {\n console.warn('Steps are not valid', steps); //eslint-disable-line no-console\n }\n }\n /* istanbul ignore else */\n\n\n if (changedProps('run')) {\n if (run) {\n start(stepIndex);\n } else {\n stop();\n }\n }\n /* istanbul ignore else */\n\n\n if (stepIndexChanged) {\n var nextAction = prevStepIndex < stepIndex ? ACTIONS.NEXT : ACTIONS.PREV;\n\n if (action === ACTIONS.STOP) {\n nextAction = ACTIONS.START;\n }\n\n if (!([STATUS.FINISHED, STATUS.SKIPPED].indexOf(status) !== -1)) {\n update({\n action: action === ACTIONS.CLOSE ? ACTIONS.CLOSE : nextAction,\n index: stepIndex,\n lifecycle: LIFECYCLE.INIT\n });\n }\n } // Update the index if the first step is not found\n\n\n if (!controlled && status === STATUS.RUNNING && index === 0 && !target) {\n update({\n index: index + 1\n });\n this.callback(_objectSpread2(_objectSpread2({}, this.state), {}, {\n type: EVENTS.TARGET_NOT_FOUND,\n step: step\n }));\n }\n\n var callbackData = _objectSpread2(_objectSpread2({}, this.state), {}, {\n index: index,\n step: step\n });\n\n var isAfterAction = changed('action', [ACTIONS.NEXT, ACTIONS.PREV, ACTIONS.SKIP, ACTIONS.CLOSE]);\n\n if (isAfterAction && changed('status', STATUS.PAUSED)) {\n var prevStep = getMergedStep(steps[prevState.index], this.props);\n this.callback(_objectSpread2(_objectSpread2({}, callbackData), {}, {\n index: prevState.index,\n lifecycle: LIFECYCLE.COMPLETE,\n step: prevStep,\n type: EVENTS.STEP_AFTER\n }));\n }\n\n if (changed('status', [STATUS.FINISHED, STATUS.SKIPPED])) {\n var _prevStep = getMergedStep(steps[prevState.index], this.props);\n\n if (!controlled) {\n this.callback(_objectSpread2(_objectSpread2({}, callbackData), {}, {\n index: prevState.index,\n lifecycle: LIFECYCLE.COMPLETE,\n step: _prevStep,\n type: EVENTS.STEP_AFTER\n }));\n }\n\n this.callback(_objectSpread2(_objectSpread2({}, callbackData), {}, {\n index: prevState.index,\n // Return the last step when the tour is finished\n step: _prevStep,\n type: EVENTS.TOUR_END\n }));\n reset();\n } else if (changedFrom('status', [STATUS.IDLE, STATUS.READY], STATUS.RUNNING)) {\n this.callback(_objectSpread2(_objectSpread2({}, callbackData), {}, {\n type: EVENTS.TOUR_START\n }));\n } else if (changed('status')) {\n this.callback(_objectSpread2(_objectSpread2({}, callbackData), {}, {\n type: EVENTS.TOUR_STATUS\n }));\n } else if (changed('action', ACTIONS.RESET)) {\n this.callback(_objectSpread2(_objectSpread2({}, callbackData), {}, {\n type: EVENTS.TOUR_STATUS\n }));\n }\n\n if (step) {\n this.scrollToStep(prevState);\n\n if (step.placement === 'center' && status === STATUS.RUNNING && action === ACTIONS.START && lifecycle === LIFECYCLE.INIT) {\n update({\n lifecycle: LIFECYCLE.READY\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var disableCloseOnEsc = this.props.disableCloseOnEsc;\n /* istanbul ignore else */\n\n if (!disableCloseOnEsc) {\n document.body.removeEventListener('keydown', this.handleKeyboard);\n }\n }\n }, {\n key: \"scrollToStep\",\n value: function scrollToStep(prevState) {\n var _this$state3 = this.state,\n index = _this$state3.index,\n lifecycle = _this$state3.lifecycle,\n status = _this$state3.status;\n var _this$props4 = this.props,\n debug = _this$props4.debug,\n disableScrolling = _this$props4.disableScrolling,\n disableScrollParentFix = _this$props4.disableScrollParentFix,\n scrollToFirstStep = _this$props4.scrollToFirstStep,\n scrollOffset = _this$props4.scrollOffset,\n scrollDuration = _this$props4.scrollDuration,\n steps = _this$props4.steps;\n var step = getMergedStep(steps[index], this.props);\n /* istanbul ignore else */\n\n if (step) {\n var target = getElement(step.target);\n var shouldScroll = this.shouldScroll(disableScrolling, index, scrollToFirstStep, lifecycle, step, target, prevState);\n\n if (status === STATUS.RUNNING && shouldScroll) {\n var hasCustomScroll = hasCustomScrollParent(target, disableScrollParentFix);\n var scrollParent = getScrollParent(target, disableScrollParentFix);\n var scrollY = Math.floor(getScrollTo(target, scrollOffset, disableScrollParentFix)) || 0;\n log({\n title: 'scrollToStep',\n data: [{\n key: 'index',\n value: index\n }, {\n key: 'lifecycle',\n value: lifecycle\n }, {\n key: 'status',\n value: status\n }],\n debug: debug\n });\n /* istanbul ignore else */\n\n if (lifecycle === LIFECYCLE.BEACON && this.beaconPopper) {\n var _this$beaconPopper = this.beaconPopper,\n placement = _this$beaconPopper.placement,\n popper = _this$beaconPopper.popper;\n /* istanbul ignore else */\n\n if (!(['bottom'].indexOf(placement) !== -1) && !hasCustomScroll) {\n scrollY = Math.floor(popper.top - scrollOffset);\n }\n } else if (lifecycle === LIFECYCLE.TOOLTIP && this.tooltipPopper) {\n var _this$tooltipPopper = this.tooltipPopper,\n flipped = _this$tooltipPopper.flipped,\n _placement = _this$tooltipPopper.placement,\n _popper = _this$tooltipPopper.popper;\n\n if (['top', 'right', 'left'].indexOf(_placement) !== -1 && !flipped && !hasCustomScroll) {\n scrollY = Math.floor(_popper.top - scrollOffset);\n } else {\n scrollY -= step.spotlightPadding;\n }\n }\n\n scrollY = scrollY >= 0 ? scrollY : 0;\n /* istanbul ignore else */\n\n if (status === STATUS.RUNNING) {\n scrollTo(scrollY, scrollParent, scrollDuration);\n }\n }\n }\n }\n /**\n * Trigger the callback.\n *\n * @private\n * @param {Object} data\n */\n\n }, {\n key: \"render\",\n value: function render() {\n if (!canUseDOM) return null;\n var _this$state4 = this.state,\n index = _this$state4.index,\n status = _this$state4.status;\n var _this$props5 = this.props,\n continuous = _this$props5.continuous,\n debug = _this$props5.debug,\n nonce = _this$props5.nonce,\n scrollToFirstStep = _this$props5.scrollToFirstStep,\n steps = _this$props5.steps;\n var step = getMergedStep(steps[index], this.props);\n var output;\n\n if (status === STATUS.RUNNING && step) {\n output = /*#__PURE__*/React.createElement(JoyrideStep, _extends({}, this.state, {\n callback: this.callback,\n continuous: continuous,\n debug: debug,\n setPopper: this.setPopper,\n helpers: this.helpers,\n nonce: nonce,\n shouldScroll: !step.disableScrolling && (index !== 0 || scrollToFirstStep),\n step: step,\n update: this.store.update\n }));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-joyride\"\n }, output);\n }\n }]);\n\n return Joyride;\n}(React.Component);\n\n_defineProperty(Joyride, \"defaultProps\", {\n continuous: false,\n debug: false,\n disableCloseOnEsc: false,\n disableOverlay: false,\n disableOverlayClose: false,\n disableScrolling: false,\n disableScrollParentFix: false,\n getHelpers: function getHelpers() {},\n hideBackButton: false,\n run: true,\n scrollOffset: 20,\n scrollDuration: 300,\n scrollToFirstStep: false,\n showSkipButton: false,\n showProgress: false,\n spotlightClicks: false,\n spotlightPadding: 10,\n steps: []\n});\n\nexport { ACTIONS, EVENTS, LIFECYCLE, STATUS, Joyride as default };\n","import './Tour.scss';\nimport React, { useMemo, useState } from 'react';\nimport Joyride, { Step, TooltipRenderProps } from 'react-joyride';\nimport useTimeout from 'hooks/useTimeout';\nimport Button from 'components/v2/Button';\nimport IconClose from 'components/Svg/icons/IconClose';\nimport Typography from 'components/Typography';\n\ninterface TooltipProps extends TooltipRenderProps {\n /**\n * Callback func when user clicks on (x) button\n */\n onDismiss: () => void;\n\n /**\n * Enable the dismiss functionality\n */\n dismissable: boolean;\n\n /**\n * Set dismiss request state (render dismiss step)\n */\n isDismissRequested: boolean;\n\n /**\n * Callback for actual dismiss (click on confirm button)\n */\n onDismissConfirm?: () => void;\n\n /**\n * Callback to revert the dismiss request state (click on cancel button)\n */\n onCancelDismiss: () => void;\n}\n\nconst Tooltip = (props: TooltipProps) => {\n const {\n continuous,\n index,\n step,\n primaryProps,\n tooltipProps,\n size,\n dismissable,\n onDismiss,\n isDismissRequested,\n onDismissConfirm,\n onCancelDismiss,\n } = props;\n\n return (\n <div\n className=\"TDB-Tour__tooltip\"\n {...tooltipProps}\n data-testid=\"tour-tooltip\"\n >\n <div className=\"TDB-Tour__tooltip__header\">\n {step.title && (\n <Typography\n className=\"TDB-Tour__tooltip__title\"\n fontSize=\"body-lg-text\"\n color=\"text-action-alternative\"\n fontWeight=\"600\"\n >\n {step.title}\n </Typography>\n )}\n {dismissable && (\n <button\n className=\"TDB-Tour__tooltip__close-btn\"\n onClick={onDismiss}\n data-cy=\"skip-tour-button\"\n >\n <IconClose size={16} fill=\"var(--text-action-alternative)\" />\n </button>\n )}\n </div>\n <Typography fontSize=\"body-md-text\" fontWeight=\"400\">\n {step.content}\n </Typography>\n <div className=\"TDB-Tour__tooltip__footer\">\n {/**\n * Show tour length indicator only if steps are > 1\n * Hide the indicator if current step is replaced by the \"dismiss confirmation step\"\n */}\n {size > 1 && !isDismissRequested ? (\n <Typography\n variant=\"secondary\"\n fontSize=\"body-sm-text\"\n fontWeight=\"500\"\n >\n {index + 1} of {size} tips\n </Typography>\n ) : (\n <div />\n )}\n {/**\n * Show next button if continuous is set to true\n * Next button's text is \"Got it\" on last step\n * Hide this button if we are in a \"dimiss confirmation\" state\n */}\n {continuous && !isDismissRequested && (\n <Button\n onClick={primaryProps.onClick}\n ariaLabel={primaryProps['aria-label']}\n size=\"medium\"\n variant=\"primary\"\n >\n {index + 1 === size ? 'Got it' : 'Next'}\n </Button>\n )}\n {/**\n * Custom footer for the \"dismiss confirmation\" state\n */}\n {isDismissRequested && (\n <div className=\"TDB-Tour__tooltip__footer__dismiss-items\">\n <Button size=\"medium\" onClick={onCancelDismiss} variant=\"secondary\">\n Cancel\n </Button>\n <Button\n onClick={onDismissConfirm}\n ariaLabel={primaryProps['aria-label']}\n size=\"medium\"\n variant=\"primary\"\n >\n Yes, dismiss\n </Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\ninterface TourProps {\n /**\n * Tour steps\n */\n steps: Step[];\n\n /**\n * Active state of tour component (it is controlled)\n */\n active: boolean;\n\n /**\n * Optional callback when the tour has finished\n */\n onFinish?: () => void;\n\n /**\n * Optional callback when the tour has been dismissed early\n */\n onDismiss?: () => void;\n\n /**\n * Optionally start the tour after x time in miliseconds\n */\n startWithDelay?: number;\n\n /**\n * Enable the dismiss functionality\n */\n dismissable: boolean;\n}\n\nconst Tour: React.FC<TourProps> = (props) => {\n const {\n steps,\n active,\n onFinish,\n onDismiss,\n startWithDelay = 0,\n dismissable,\n } = props;\n const [stepIndex, setStepIndex] = useState(1000);\n const [dismissRequested, setDismissRequested] = useState(false);\n\n useTimeout(\n () => {\n setStepIndex(0);\n },\n startWithDelay,\n []\n );\n\n const localSteps = useMemo(() => {\n /**\n * Hack to implement the \"dismiss confirmation\" functionality\n * Upon dismiss, we want to replace the step in-place with a custom confirmation content\n */\n const s = [...steps];\n if (dismissRequested) {\n /**\n * Replace current step with the confirmation step\n * All props should remain the same, except the title and content\n */\n s[stepIndex] = {\n ...steps[stepIndex],\n title: 'Are you sure you want to skip?',\n content:\n \"Skipping the basic tour will mark it as complete and you won't have the change to see it again. Are you sure you want to skip it?\",\n };\n }\n\n // Otherwise return the steps from props as they are\n return s;\n }, [steps, stepIndex, dismissRequested]);\n\n const handleEvent = (e: any) => {\n if (e.action === 'next' && e.lifecycle === 'complete') {\n /**\n * Step navigation is controlled\n */\n setStepIndex(e.index + 1);\n }\n if (e.status === 'finished') {\n /**\n * call onFinish callback (if any) when the tour has finished\n */\n onFinish?.();\n }\n };\n\n const requestDismiss = () => {\n /**\n * This will replace the current step with the custom \"dismiss confirmation\" step\n */\n setDismissRequested(true);\n };\n\n const onCancelDismiss = () => {\n /**\n * This will replace the \"dismiss confirmation\" step with the original step\n */\n setDismissRequested(false);\n };\n\n return (\n <Joyride\n steps={localSteps}\n stepIndex={stepIndex}\n run={active}\n showProgress={!dismissRequested}\n continuous\n disableOverlay\n disableCloseOnEsc\n callback={handleEvent}\n tooltipComponent={(props) => (\n <Tooltip\n {...props}\n dismissable={dismissable}\n onDismiss={requestDismiss}\n isDismissRequested={dismissRequested}\n onDismissConfirm={onDismiss}\n onCancelDismiss={onCancelDismiss}\n />\n )}\n styles={{\n options: {\n arrowColor: 'var(--tooltip)',\n backgroundColor: 'var(--tooltip)',\n overlayColor: 'rgba(79, 26, 0, 0.4)',\n primaryColor: 'var(--tooltip)',\n textColor: 'var(--text-action-alternative)',\n width: 296,\n zIndex: 1000,\n },\n }}\n />\n );\n};\n\nexport default Tour;\n","import Tour from './Tour';\n\nexport default Tour;\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport classNames from 'classnames';\nimport './Typography.scss';\n\nexport const SIZE_VARIANTS = [\n 'heading-xxl',\n 'heading-xl',\n 'heading-lg',\n 'heading-md',\n 'heading-sm',\n 'heading-xs',\n 'body-xl',\n 'body-lg',\n 'body-lg-text',\n 'body-md',\n 'body-md-text',\n 'body-sm',\n 'body-sm-text',\n 'body-xs',\n 'body-xs-text',\n 'body-xxs',\n] as const;\n\nexport type SizeVariants = (typeof SIZE_VARIANTS)[number];\n\nexport const VARIANTS = [\n 'default',\n 'disabled',\n 'app-default',\n 'app-selected',\n 'tertiary',\n 'link',\n 'secondary',\n 'on-fill',\n 'on-fill-brand',\n 'on-surface-info',\n 'on-surface-secondary-info',\n] as const;\n\nexport type TypographyVariants = (typeof VARIANTS)[number];\n\nexport const WEIGHTS = ['400', '500', '600', '700', '800'] as const;\n\nexport type FontWeight = (typeof WEIGHTS)[number];\n\nexport interface TypographyProps extends React.HTMLProps<HTMLParagraphElement> {\n fontSize?: SizeVariants;\n fontWeight?: FontWeight;\n variant?: TypographyVariants;\n className?: string;\n as?: keyof JSX.IntrinsicElements;\n to?: string;\n align?: 'left' | 'center' | 'right';\n hoverEffect?: 'underline';\n dataTestId?: string;\n dataCy?: string;\n ellipsis?: boolean;\n noWrap?: boolean;\n basicTourStep?: string;\n organizationBasicTourStep?: string;\n}\n\nconst Typography: React.FC<TypographyProps> = ({\n children,\n className,\n as = 'span',\n to,\n variant,\n fontWeight,\n align,\n href,\n style,\n hoverEffect,\n fontSize,\n dataTestId,\n dataCy,\n ellipsis,\n noWrap,\n basicTourStep,\n organizationBasicTourStep,\n ...rest\n}) => {\n const elementRef = React.useRef<any>();\n const Component: keyof JSX.IntrinsicElements | React.FC<any> = to ? Link : as;\n const typographyVariant: TypographyVariants = React.useMemo(() => {\n if (variant) {\n return variant;\n }\n // If it's link\n if (as === 'a' || to) {\n return 'link';\n }\n\n return 'default';\n }, [variant, as, to]);\n\n const textIsTruncated = React.useMemo(() => {\n const element = elementRef.current;\n if (!ellipsis || !element) {\n return false;\n }\n\n if (element.clientWidth < element.scrollWidth) {\n return true;\n }\n\n return false;\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [ellipsis, elementRef.current]);\n\n return (\n <Component\n ref={elementRef}\n data-testid={dataTestId}\n data-cy={dataCy}\n style={style}\n title={textIsTruncated ? children : null}\n className={classNames('TDB-Typography', className, {\n 'TDB-Typography--ellipsis': ellipsis,\n 'TDB-Typography--truncated': textIsTruncated,\n 'TDB-Typography--no-wrap': noWrap,\n [`TDB-Typography--${fontSize}`]: fontSize,\n [`TDB-Typography--${typographyVariant}`]: typographyVariant,\n [`TDB-Typography--fw-${fontWeight}`]: fontWeight,\n [`TDB-Typography--hover-${hoverEffect}`]: hoverEffect,\n [`TDB-Typography--align-${align}`]: align,\n })}\n to={to}\n href={href}\n basic-tour-step={basicTourStep}\n organization-basic-tour-step={organizationBasicTourStep}\n {...rest}\n >\n {children}\n </Component>\n );\n};\n\nexport default Typography;\n","import Typography from './Typography';\n\nexport default Typography;\nexport * from './Typography';\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"Button_button__uUzzS\",\"content\":\"Button_content__lFTdM\",\"small\":\"Button_small__huaSi\",\"onlyIcon\":\"Button_onlyIcon__NAGxd\",\"medium\":\"Button_medium__WY48R\",\"large\":\"Button_large__47ETW\",\"primary\":\"Button_primary__a4f1K\",\"secondary\":\"Button_secondary__eVFop\",\"outlined\":\"Button_outlined__US9hV\",\"plain\":\"Button_plain__IbeYL\",\"disabled\":\"Button_disabled__3lkX7\",\"text\":\"Button_text__1SDQX\",\"selected\":\"Button_selected__Qbmqz\",\"critical\":\"Button_critical__nlABr\",\"fullWidth\":\"Button_fullWidth__nXGzW\",\"loading\":\"Button_loading__fT1WO\",\"align-left\":\"Button_align-left__1mfMk\",\"align-right\":\"Button_align-right__rQFlf\"};","import React, { ReactNode, CSSProperties, Ref, useMemo } from 'react';\nimport Loader from 'components/Loader';\nimport { Icon as IconType } from 'components/Svg';\nimport classNames from 'classnames';\nimport styles from './Button.module.scss';\nimport Typography, {\n SizeVariants,\n FontWeight,\n TypographyVariants,\n} from 'components/Typography';\n\nexport const BUTTON_SIZES = ['small', 'medium', 'large'] as const;\nexport const BUTTON_TYPES = ['button', 'submit', 'reset'] as const;\nexport const BUTTON_VARIANTS = [\n 'primary',\n 'secondary',\n 'outlined',\n 'plain',\n] as const;\nexport const BUTTON_ALIGNMENTS = ['left', 'center', 'right'] as const;\n\nexport type ButtonSize = (typeof BUTTON_SIZES)[number];\ntype ButtonType = (typeof BUTTON_TYPES)[number];\nexport type ButtonVariant = (typeof BUTTON_VARIANTS)[number];\nexport type ButtonAlignment = (typeof BUTTON_ALIGNMENTS)[number];\n\nexport interface ButtonProps {\n type?: ButtonType;\n onClick?(e: React.SyntheticEvent): any;\n children?: ReactNode;\n disabled?: boolean;\n className?: string;\n tabIndex?: number;\n size: ButtonSize;\n icon?: IconType;\n iconRight?: IconType;\n loading?: boolean;\n variant: ButtonVariant;\n style?: CSSProperties;\n title?: string;\n dataCy?: string;\n ariaLabel?: string;\n fullWidth?: boolean;\n critical?: boolean;\n ariaHidden?: boolean;\n buttonRef?: Ref<HTMLButtonElement>;\n role?: string;\n dataTestID?: string;\n selected?: boolean; // applies styling to an active-like state on demand\n align?: ButtonAlignment;\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n children,\n disabled,\n className,\n type = 'button',\n tabIndex,\n variant,\n onClick,\n style,\n loading,\n icon: Icon,\n size,\n title,\n dataCy,\n ariaLabel,\n fullWidth,\n iconRight: IconRight,\n critical,\n ariaHidden,\n buttonRef,\n role,\n selected,\n dataTestID = 'TDB-Btn',\n align = 'center',\n ...rest\n}) => {\n const handleClick = (e: React.SyntheticEvent) => {\n onClick?.(e);\n };\n\n const textSize: SizeVariants = useMemo(() => {\n if (size === 'small') {\n return 'body-sm';\n }\n return 'body-md';\n }, [size]);\n\n const textWeight: FontWeight = useMemo(() => {\n if (size === 'large') {\n return '600';\n }\n return '500';\n }, [size]);\n\n const iconSize: number = useMemo(() => {\n if (size === 'small') {\n return 14;\n }\n return 16;\n }, [size]);\n\n const textVariant: TypographyVariants = useMemo(() => {\n if (variant === 'primary') {\n return 'on-fill-brand';\n } else if (variant === 'outlined' || variant === 'secondary') {\n return 'default';\n } else if (variant === 'plain') {\n return 'link';\n }\n return 'on-fill-brand';\n }, [variant]);\n\n const hasOnlyIcon = useMemo(\n () => !children && !IconRight && !!Icon,\n [Icon, IconRight, children]\n );\n\n const iconFill: string = useMemo(() => {\n if (variant === 'primary') {\n return '--color-text-on-fill-brand-default';\n } else if (variant === 'secondary' || variant === 'outlined') {\n if (hasOnlyIcon) {\n return '--color-text-default';\n }\n return '--color-text-secondary-default';\n } else if (variant === 'plain') {\n return '--color-text-link-default';\n }\n return '--color-text-link-default';\n }, [variant, hasOnlyIcon]);\n\n return (\n <button\n ref={buttonRef}\n role={role}\n tabIndex={tabIndex}\n className={classNames(\n styles.button,\n styles[size],\n styles[variant],\n styles[`align-${align}`],\n className,\n {\n [styles.disabled]: disabled,\n [styles.fullWidth]: fullWidth,\n [styles.critical]: critical,\n [styles.selected]: selected,\n [styles.loading]: loading,\n [styles.onlyIcon]: hasOnlyIcon,\n }\n )}\n type={type}\n disabled={disabled || loading}\n onClick={handleClick}\n data-testid={dataTestID}\n style={style}\n title={title}\n data-cy={dataCy}\n aria-label={ariaLabel as string}\n aria-hidden={ariaHidden}\n {...rest}\n >\n {loading && <Loader type=\"dots-only\" size={80} />}\n\n <div className={styles.content} tabIndex={-1}>\n {Icon && <Icon fill={`var(${iconFill})`} size={iconSize} />}\n {children && (\n <Typography\n className={styles.text}\n variant={textVariant}\n fontWeight={textWeight}\n fontSize={textSize}\n >\n {children}\n </Typography>\n )}\n {IconRight && <IconRight fill={`var(${iconFill})`} size={iconSize} />}\n </div>\n </button>\n );\n};\n\nButton.defaultProps = {\n type: 'button',\n size: 'large',\n variant: 'primary',\n};\n\nexport default Button;\n","import React from 'react';\nimport { useFormikContext, FormikProps } from 'formik';\nimport Button, { ButtonProps } from './Button';\n\ntype Props = Partial<ButtonProps>;\n\nfunction FormikSubmitButton(\n props: React.PropsWithChildren<Props>\n): JSX.Element {\n const { children } = props;\n\n const context: FormikProps<any> = useFormikContext();\n\n return (\n <Button\n loading={context.isSubmitting}\n variant=\"primary\"\n size=\"large\"\n {...props}\n type=\"submit\"\n >\n {children}\n </Button>\n );\n}\n\nexport default FormikSubmitButton;\n","import Button from './Button';\nimport FormikSubmitButton from './FormikSubmitButton';\n\nexport { FormikSubmitButton };\nexport default Button;\nexport * from './Button';\n","import './AuthPromptPlaceholder.scss';\nimport React from 'react';\nimport Button from 'components/v2/Button';\nimport Text from 'components/Text';\nimport { Link } from 'react-router-dom';\nimport { authLinks } from 'utils/links';\nimport multicube from 'assets/images/multicube.png';\n\ninterface Props {\n message?: string;\n}\n\nconst AuthPromptPlaceholder: React.FC<Props> = (props) => {\n const { message } = props;\n\n const msg = message || 'No registered or shared assets yet.';\n\n return (\n <div\n className=\"TDB-AuthPromptPlaceholder\"\n data-testid=\"TDB-AuthPromptPlaceholder\"\n >\n <Text\n as=\"h2\"\n color=\"text-main-primary\"\n fontWeight=\"bold\"\n variant=\"heading-1\"\n className=\"TDB-AuthPromptPlaceholder__title\"\n align=\"center\"\n >\n Get started!\n </Text>\n <Text\n as=\"p\"\n color=\"text-main-secondary\"\n variant=\"body-md\"\n align=\"center\"\n className=\"TDB-AuthPromptPlaceholder__description\"\n >\n {msg} Create your account and get started with TileDB.\n </Text>\n <div className=\"TDB-AuthPromptPlaceholder__image\">\n <img className=\"TDB-AuthTemplate__Cube\" src={multicube} alt=\"cube\" />\n </div>\n <div className=\"TDB-AuthPromptPlaceholder__buttons\">\n <Link to={authLinks.signup()}>\n <Button size=\"large\" variant=\"primary\">\n Signup\n </Button>\n </Link>\n <Link to={authLinks.login()}>\n <Button size=\"large\" variant=\"outlined\">\n Login\n </Button>\n </Link>\n </div>\n </div>\n );\n};\n\nexport default AuthPromptPlaceholder;\n","import AuthPromptPlaceholder from './AuthPromptPlaceholder';\n\nexport default AuthPromptPlaceholder;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { motion } from 'framer-motion';\nimport { overviewLinks } from 'utils/links';\nimport AuthPromptPlaceholder from 'components/AuthPromptPlaceholder';\nimport Placeholder, { PlaceholderGraphic } from 'components/v2/Placeholder';\n\nexport interface FetchingProps extends React.PropsWithChildren {\n isLoading: boolean;\n error?: any;\n ref?: (element: HTMLElement | null) => void;\n customErrorElement?: JSX.Element;\n skeleton?: JSX.Element;\n className?: string;\n noDataPlaceholder?: {\n shouldRender: boolean;\n element: JSX.Element;\n };\n}\n\ntype Status = 403 | 404 | 413 | 500 | 'ECONNABORTED';\n\nfunction getGraphicByStatus(status: Status): PlaceholderGraphic {\n switch (status) {\n case 403:\n return 'unauthorized-access';\n case 404:\n return 'no-search-results';\n default:\n return 'unexpected-error';\n }\n}\n\nfunction getDefaultDescriptionByStatus(status: Status): string {\n switch (status) {\n case 500:\n return 'We are experiencing an internal server problem. Please try back later.';\n case 404:\n return 'The page you are looking for might have been removed, had it’s name changed or is temporary unavailable.';\n case 403:\n return \"You don't have access to this functionality.\";\n case 413:\n return 'Content is too large to render.';\n case 'ECONNABORTED':\n return 'Could not connect to the server. Please check your internet connection.';\n default:\n /* istanbul ignore next */\n return '';\n }\n}\n\nexport const Fetching: React.FC<FetchingProps> = (props) => {\n const {\n children,\n ref,\n isLoading,\n className,\n error,\n customErrorElement,\n skeleton,\n noDataPlaceholder,\n } = props;\n const history = useHistory();\n const transition = { duration: 0.5 };\n const childrenStyle = {\n opacity: 0,\n };\n const shouldRenderChildren = !isLoading && !error;\n const childrenAnimateStyle = {\n opacity: shouldRenderChildren ? 1 : 0,\n };\n\n if (isLoading) {\n return skeleton || null;\n }\n\n if (error) {\n const status = error?.response?.status || error.status || error.code;\n const message = error?.response?.data?.message || error.data?.title;\n let title = 'Uh oh, something went wrong!';\n\n if (!!customErrorElement) {\n return customErrorElement;\n }\n\n if (status === 401) {\n return <AuthPromptPlaceholder />;\n }\n\n if (status === 413) {\n title = 'Content too large';\n }\n\n return (\n <div\n ref={ref}\n className=\"d-flex fill-height align-center justify-center flex-1\"\n >\n <Placeholder\n graphic={getGraphicByStatus(status)}\n title={title}\n description={message || getDefaultDescriptionByStatus(status)}\n actions={[\n {\n variant: 'primary',\n size: 'large',\n children: 'Go to home page',\n onClick: (): void => {\n history.push(overviewLinks.root());\n },\n },\n ]}\n />\n </div>\n );\n }\n\n if (noDataPlaceholder?.shouldRender && !!noDataPlaceholder?.element) {\n return noDataPlaceholder?.element;\n }\n\n return (\n <motion.div\n ref={ref}\n className={className}\n style={childrenStyle}\n transition={transition}\n animate={childrenAnimateStyle}\n >\n {children}\n </motion.div>\n );\n};\n\nexport default Fetching;\n","import Fetching from './Fetching';\n\nexport default Fetching;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Placeholder_wrapper__kFJzq\",\"content\":\"Placeholder_content__5yCtm\",\"buttons\":\"Placeholder_buttons__+kTzb\",\"graphic-wrapper\":\"Placeholder_graphic-wrapper__i7pOc\",\"main\":\"Placeholder_main__6kou+\",\"footer\":\"Placeholder_footer__+oWUj\",\"background-wrapper\":\"Placeholder_background-wrapper__6oakq\",\"graphic-img\":\"Placeholder_graphic-img__ACaqN\",\"graphic-background\":\"Placeholder_graphic-background__VvXjr\",\"no-description--background\":\"Placeholder_no-description--background__iz9kS\",\"no-description--img\":\"Placeholder_no-description--img__0kbpK\",\"no-recently-created--background\":\"Placeholder_no-recently-created--background__LiSzl\",\"no-recently-created--img\":\"Placeholder_no-recently-created--img__NGFJm\",\"no-active-apps--background\":\"Placeholder_no-active-apps--background__1gTrO\",\"no-active-apps--img\":\"Placeholder_no-active-apps--img__1GnrZ\",\"no-notifications--background\":\"Placeholder_no-notifications--background__4wv8o\",\"no-notifications--img\":\"Placeholder_no-notifications--img__tVSso\",\"no-task-graphs--background\":\"Placeholder_no-task-graphs--background__RiMDG\",\"no-task-graphs--img\":\"Placeholder_no-task-graphs--img__edtbt\",\"no-tasks--background\":\"Placeholder_no-tasks--background__JNFn5\",\"no-tasks--img\":\"Placeholder_no-tasks--img__icgon\",\"no-metadata--background\":\"Placeholder_no-metadata--background__gPSlK\",\"no-metadata--img\":\"Placeholder_no-metadata--img__JfaZW\",\"no-marketplace-results--background\":\"Placeholder_no-marketplace-results--background__UJiEN\",\"no-marketplace-results--img\":\"Placeholder_no-marketplace-results--img__-0G+J\",\"no-payment-method--background\":\"Placeholder_no-payment-method--background__tH6Hq\",\"no-payment-method--img\":\"Placeholder_no-payment-method--img__D4fLy\",\"no-invoices--background\":\"Placeholder_no-invoices--background__sAnE3\",\"no-invoices--img\":\"Placeholder_no-invoices--img__k8fNs\",\"no-asset-preview--background\":\"Placeholder_no-asset-preview--background__tlt1X\",\"no-asset-preview--img\":\"Placeholder_no-asset-preview--img__Q+Iv2\",\"no-api-tokens--background\":\"Placeholder_no-api-tokens--background__XdsQb\",\"no-api-tokens--img\":\"Placeholder_no-api-tokens--img__M8rGo\",\"no-cloud-credentials--background\":\"Placeholder_no-cloud-credentials--background__O5FxP\",\"no-cloud-credentials--img\":\"Placeholder_no-cloud-credentials--img__q73G6\",\"unexpected-error--background\":\"Placeholder_unexpected-error--background__mgvqL\",\"unexpected-error--img\":\"Placeholder_unexpected-error--img__XRVbg\",\"unauthorized-access--background\":\"Placeholder_unauthorized-access--background__VcPu5\",\"unauthorized-access--img\":\"Placeholder_unauthorized-access--img__CeRhV\",\"asset-sharing--background\":\"Placeholder_asset-sharing--background__Ypti1\",\"asset-sharing--img\":\"Placeholder_asset-sharing--img__aGh56\",\"no-asset-activity--background\":\"Placeholder_no-asset-activity--background__kCwSE\",\"no-asset-activity--img\":\"Placeholder_no-asset-activity--img__RRp6H\",\"no-servers--background\":\"Placeholder_no-servers--background__ZDHGg\",\"no-servers--img\":\"Placeholder_no-servers--img__-1DUe\",\"no-contents-groups--background\":\"Placeholder_no-contents-groups--background__Dn4EB\",\"no-contents-groups--img\":\"Placeholder_no-contents-groups--img__+kVMG\",\"no-assets--background\":\"Placeholder_no-assets--background__ApP2m\",\"no-assets--img\":\"Placeholder_no-assets--img__WoYcu\",\"add-member--background\":\"Placeholder_add-member--background__of1cX\",\"add-member--img\":\"Placeholder_add-member--img__iCV4Z\",\"email-verification--background\":\"Placeholder_email-verification--background__tNuKa\",\"email-verification--img\":\"Placeholder_email-verification--img__VtrmJ\",\"default--background\":\"Placeholder_default--background__GcE2u\",\"default--graphic\":\"Placeholder_default--graphic__ow6es\",\"no-description--graphic\":\"Placeholder_no-description--graphic__HYFaQ\"};","import Typography from 'components/Typography';\nimport React, { ReactElement, ReactNode } from 'react';\nimport Button, { ButtonProps } from 'components/v2/Button';\nimport { motion } from 'framer-motion';\nimport styles from './Placeholder.module.scss';\nimport classNames from 'classnames';\nimport ConditionalWrapper from 'components/ConditionalWrapper';\nimport { Link } from 'react-router-dom';\n\nexport type PlaceholderGraphic =\n | 'asset-sharing'\n | 'no-api-tokens'\n | 'no-recently-created'\n | 'no-asset-activity'\n | 'no-servers'\n | 'no-notifications'\n | 'no-description'\n | 'no-assets'\n | 'no-search-results'\n | 'no-task-graphs'\n | 'no-tasks'\n | 'no-active-apps'\n | 'no-metadata'\n | 'no-marketplace-results'\n | 'no-payment-method'\n | 'no-invoices'\n | 'no-cloud-credentials'\n | 'no-asset-preview'\n | 'unauthorized-access'\n | 'unexpected-error'\n | 'no-contents-groups'\n | 'add-member'\n | 'email-verification';\n\ninterface PlaceholderButtonProps extends ButtonProps {\n link?: string;\n}\n\ninterface Props {\n graphic: PlaceholderGraphic;\n title?: string;\n description?: ReactNode;\n actions?: PlaceholderButtonProps[];\n customActionComponent?: React.ReactNode;\n dataTestId?: string;\n footer?: ReactElement;\n}\n\nconst Placeholder: React.FC<Props> = (props) => {\n const {\n graphic,\n title,\n description,\n actions = [],\n dataTestId,\n customActionComponent,\n footer,\n } = props;\n\n const style = {\n top: -16,\n opacity: 0,\n };\n const styleTop = {\n top: 16,\n opacity: 0,\n };\n const styleAnimate = {\n opacity: 1,\n top: 0,\n };\n const transition = { duration: 0.4 };\n\n return (\n <div className={styles.wrapper} data-testid={dataTestId}>\n <div className={styles.content}>\n {graphic && (\n <motion.div\n style={style}\n transition={transition}\n animate={styleAnimate}\n exit={style}\n className={styles['graphic-wrapper']}\n >\n <div\n data-testid=\"placeholder-background\"\n className={classNames(\n styles['background-wrapper'],\n styles[`${graphic}--background`]\n )}\n />\n <div\n data-testid=\"placeholder-img\"\n className={classNames(\n styles['graphic-img'],\n styles[`${graphic}--img`]\n )}\n />\n </motion.div>\n )}\n <motion.div\n style={styleTop}\n transition={transition}\n animate={styleAnimate}\n exit={styleTop}\n className={styles.main}\n >\n <div>\n <Typography\n as=\"h5\"\n fontSize=\"heading-sm\"\n fontWeight=\"700\"\n className=\"mb-2\"\n align=\"center\"\n >\n {title}\n </Typography>\n <Typography align=\"center\" as=\"p\" fontSize=\"body-md\">\n {description}\n </Typography>\n </div>\n {customActionComponent && (\n <div className={styles.buttons}>{customActionComponent}</div>\n )}\n {!!actions && actions.length > 0 && (\n <div className={styles.buttons}>\n {actions.map((btnProp, i) => (\n <ConditionalWrapper\n key={`${i}-${btnProp.title}`}\n condition={!!btnProp.link}\n left={(c: any) => (\n <Link to={btnProp.link as string}>{c}</Link>\n )}\n right={(c: any) => c}\n >\n <Button {...btnProp} />\n </ConditionalWrapper>\n ))}\n </div>\n )}\n {footer && <div className={styles.footer}>{footer}</div>}\n </motion.div>\n </div>\n </div>\n );\n};\n\nexport default Placeholder;\n","import Placeholder from './Placeholder';\n\nexport default Placeholder;\nexport * from './Placeholder';\n","import React, { Suspense, useEffect } from 'react';\nimport classNames from 'classnames';\nimport useModal, { ModalType } from 'store/ModalStore';\nimport './ModalContainer.scss';\nimport lazyLoadComponent from 'utils/helpers/lazyLoadComponent';\n/**\n * Lazy load modals\n */\nconst ModalCropImage = lazyLoadComponent(\n () => import('../../components/Modals/ModalCropImage')\n);\nconst ModalSelectRegion = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectRegion')\n);\nconst ModalText = lazyLoadComponent(\n () => import('../../components/Modals/ModalText')\n);\nconst ModalAddNotebook = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddNotebook')\n);\nconst ModalAddFile = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddFile')\n);\nconst ModalAddCodeAssets = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddCodeAssets')\n);\nconst ModalConfirm = lazyLoadComponent(\n () => import('../../components/Modals/ModalConfirm')\n);\nconst ModalAddLicense = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddLicense')\n);\nconst ModalServerMismatch = lazyLoadComponent(\n () => import('../../components/Modals/ModalServerMismatch')\n);\nconst ModalCreditCard = lazyLoadComponent(\n () => import('../../components/Modals/ModalCreditCard')\n);\nconst ModalClaimCredits = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalClaimCredits')\n);\nconst ModalAPIToken = lazyLoadComponent(\n () => import('../../components/Modals/ModalAPIToken')\n);\nconst ModalInvoice = lazyLoadComponent(\n () => import('../../components/Modals/ModalInvoice')\n);\nconst ModalRenameOrganization = lazyLoadComponent(\n () => import('../../components/Modals/ModalRenameOrganization')\n);\nconst ModalRegisterArray = lazyLoadComponent(\n () => import('../../components/Modals/ModalRegisterArray')\n);\nconst ModalSelectFile = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectFile')\n);\nconst ModalRenameArray = lazyLoadComponent(\n () => import('../../components/Modals/ModalRenameArray')\n);\nconst ModalUploadFile = lazyLoadComponent(\n () => import('../../components/Modals/ModalUploadFile')\n);\nconst ModalShareArray = lazyLoadComponent(\n () => import('../../components/Modals/ModalShareArray')\n);\nconst ModalInviteMemberToOrganization = lazyLoadComponent(\n () => import('../../components/Modals/ModalInviteMemberToOrganization')\n);\nconst ModalChangeCloudCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalChangeCloudCredentials')\n);\nconst ModalChangeGroupCloudCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalChangeGroupCloudCredentials')\n);\nconst ModalPublicShareArray = lazyLoadComponent(\n () => import('../../components/Modals/ModalPublicShareArray')\n);\nconst ModalMarkArrayAsReadOnly = lazyLoadComponent(\n () => import('../../components/Modals/ModalMarkArrayAsReadOnly')\n);\nconst ModalRequestCredits = lazyLoadComponent(\n () => import('../../components/Modals/ModalRequestCredits')\n);\nconst ModalAddAssetsToGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddAssetsToGroup')\n);\nconst ModalAddDataAssets = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddDataAssets')\n);\nconst ModalCreateGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalCreateGroup')\n);\nconst ModalRegisterGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalRegisterGroup')\n);\nconst ModalRenameGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalRenameGroup')\n);\nconst ModalRemoveGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalRemoveGroup')\n);\nconst ModalShareGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalShareGroup')\n);\nconst ModalPublicShareGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalPublicShareGroup')\n);\nconst ModalSelectGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectGroup')\n);\nconst ModalCopyNotebook = lazyLoadComponent(\n () => import('../../components/Modals/ModalCopyNotebook')\n);\nconst ModalCopyUDF = lazyLoadComponent(\n () => import('../../components/Modals/ModalCopyUDF')\n);\nconst ModalUploadNotebook = lazyLoadComponent(\n () => import('../../components/Modals/ModalUploadNotebook')\n);\nconst ModalCreateNotebook = lazyLoadComponent(\n () => import('../../components/Modals/ModalCreateNotebook')\n);\nconst ModalAddGroup = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddGroup')\n);\nconst ModalIngestVCF = lazyLoadComponent(\n () => import('../../components/Modals/ModalIngestVCF')\n);\nconst ModalIngestSOMA = lazyLoadComponent(\n () => import('../../components/Modals/ModalIngestSOMA')\n);\nconst ModalAddAsset = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddAsset')\n);\nconst ModalChangeUsername = lazyLoadComponent(\n () => import('../../components/Modals/ModalChangeUsername')\n);\nconst ModalAWSCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalAWSCredentials')\n);\nconst ModalSelectCloudCredentialsProvider = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectCloudCredentialsProvider')\n);\nconst ModalSelectAWSCredentialsFormat = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectAWSCredentialsFormat')\n);\nconst ModalSelectAzureCredentialsFormat = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectAzureCredentialsFormat')\n);\nconst ModalSelectGCPCredentialsFormat = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectGCPCredentialsFormat')\n);\nconst ModalGCPKeyIDCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalGCPKeyIDCredentials')\n);\nconst ModalGCPServiceAccountCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalGCPServiceAccountCredentials')\n);\nconst ModalARNAWSCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalARNAWSCredentials')\n);\nconst ModalARNAWSCredentialsSetup = lazyLoadComponent(\n () => import('../../components/Modals/ModalARNAWSCredentialsSetup')\n);\nconst ModalARNAWSCredentialsRoleInfo = lazyLoadComponent(\n () => import('../../components/Modals/ModalARNAWSCredentialsRoleInfo')\n);\nconst ModalLaunchServer = lazyLoadComponent(\n () => import('../../components/Modals/ModalLaunchServer')\n);\nconst ModalImportVerticalAsset = lazyLoadComponent(\n () => import('../../components/Modals/ModalImportVerticalAsset')\n);\nconst ModalAzureCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalAzureCredentials')\n);\nconst ModalAzureTokenCredentials = lazyLoadComponent(\n () => import('../../components/Modals/ModalAzureTokenCredentials')\n);\nconst ModalApplyRootPathToStoragePaths = lazyLoadComponent(\n () => import('../../components/Modals/ModalApplyRootPathToStoragePaths')\n);\nconst ModalAddSSOConnection = lazyLoadComponent(\n () => import('../../components/Modals/ModalAddSSOConnection')\n);\nconst ModalSSODomainSetup = lazyLoadComponent(\n () => import('../../components/Modals/ModalSSODomainSetup')\n);\nconst ModalSelectRegionAndServerProfile = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectRegionAndServerProfile')\n);\nconst ModalWelcome = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalWelcome')\n);\nconst ModalProfileSetup = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalProfileSetup')\n);\nconst ModalConnectStorageIntro = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalConnectStorageIntro')\n);\nconst ModalConnectStorage = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalConnectStorage')\n);\nconst ModalAddAssetIntro = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalAddAssetIntro')\n);\nconst ModalSkipOnboarding = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalSkipOnboarding')\n);\nconst ModalUserOnboarding = lazyLoadComponent(\n () => import('../../components/ModalsV2/Onboarding/ModalUserOnboarding')\n);\nconst ModalCreateOrganization = lazyLoadComponent(\n () => import('../../components/Modals/ModalCreateOrganization')\n);\nconst ModalWelcomeToOrganization = lazyLoadComponent(\n () =>\n import('../../components/ModalsV2/Onboarding/ModalWelcomeToOrganization')\n);\nconst ModalRemoveAsset = lazyLoadComponent(\n () => import('../../components/Modals/ModalRemoveAsset')\n);\nconst ModalIngestBiomedicalImaging = lazyLoadComponent(\n () => import('../../components/Modals/ModalIngestBiomedicalImaging')\n);\nconst ModalIngestFile = lazyLoadComponent(\n () => import('../../components/Modals/ModalIngestFile')\n);\nconst ModalLaunchApp = lazyLoadComponent(\n () => import('../../components/Modals/ModalLaunchApp')\n);\nconst ModalSelectAssetToLaunch = lazyLoadComponent(\n () => import('../../components/Modals/ModalSelectAssetToLaunch')\n);\nconst ModalIngestPointCloud = lazyLoadComponent(\n () => import('../../components/Modals/ModalIngestPointCloud')\n);\nconst ModalBulkRemoveAssets = lazyLoadComponent(\n () => import('../../components/ModalsV2/ModalBulkRemoveAssets')\n);\nconst ModalBulkChangeAssetCredentials = lazyLoadComponent(\n () => import('../../components/ModalsV2/ModalBulkChangeAssetCredentials')\n);\nconst ModalUpdateAssetMetadata = lazyLoadComponent(\n () => import('../../components/ModalsV2/ModalUpdateAssetMetadata')\n);\nconst ModalInfo = lazyLoadComponent(\n () => import('../../components/ModalsV2/ModalInfo')\n);\n/**\n * Declare here any modals available for rendering\n * See Provider's returned JSX\n */\nexport const availableModals: {\n [name: string]: React.LazyExoticComponent<any>;\n} = {\n ModalCropImage,\n ModalSelectRegion,\n ModalConfirm,\n ModalServerMismatch,\n ModalText,\n ModalCreditCard,\n ModalClaimCredits,\n ModalUploadNotebook,\n ModalImportVerticalAsset,\n ModalCreateNotebook,\n ModalUserOnboarding,\n ModalAddDataAssets,\n ModalAPIToken,\n ModalAddNotebook,\n ModalAddCodeAssets,\n ModalIngestSOMA,\n ModalIngestVCF,\n ModalInvoice,\n ModalLaunchServer,\n ModalAddLicense,\n ModalRenameOrganization,\n ModalRegisterArray,\n ModalRenameArray,\n ModalShareArray,\n ModalInviteMemberToOrganization,\n ModalChangeCloudCredentials,\n ModalChangeGroupCloudCredentials,\n ModalAddFile,\n ModalPublicShareArray,\n ModalCopyNotebook,\n ModalCopyUDF,\n ModalMarkArrayAsReadOnly,\n ModalRequestCredits,\n ModalUploadFile,\n ModalGCPKeyIDCredentials,\n ModalAddAssetsToGroup,\n ModalCreateGroup,\n ModalRegisterGroup,\n ModalRenameGroup,\n ModalShareGroup,\n ModalGCPServiceAccountCredentials,\n ModalPublicShareGroup,\n ModalSelectFile,\n ModalSelectGroup,\n ModalAddGroup,\n ModalRemoveGroup,\n ModalAddAsset,\n ModalChangeUsername,\n ModalSelectCloudCredentialsProvider,\n ModalSelectAzureCredentialsFormat,\n ModalSelectGCPCredentialsFormat,\n ModalAzureTokenCredentials,\n ModalAWSCredentials,\n ModalSelectAWSCredentialsFormat,\n ModalARNAWSCredentials,\n ModalARNAWSCredentialsSetup,\n ModalARNAWSCredentialsRoleInfo,\n ModalAzureCredentials,\n ModalSelectRegionAndServerProfile,\n ModalApplyRootPathToStoragePaths,\n ModalAddSSOConnection,\n ModalSSODomainSetup,\n ModalWelcome,\n ModalProfileSetup,\n ModalConnectStorageIntro,\n ModalConnectStorage,\n ModalAddAssetIntro,\n ModalSkipOnboarding,\n ModalCreateOrganization,\n ModalWelcomeToOrganization,\n ModalRemoveAsset,\n ModalIngestBiomedicalImaging,\n ModalIngestFile,\n ModalLaunchApp,\n ModalSelectAssetToLaunch,\n ModalIngestPointCloud,\n ModalBulkRemoveAssets,\n ModalBulkChangeAssetCredentials,\n ModalUpdateAssetMetadata,\n ModalInfo,\n};\n\nconst ModalContainer: React.FC<React.PropsWithChildren> = (props) => {\n const { children } = props;\n const modals = useModal((state) => state.modals);\n const flushModals = useModal((state) => state.flushModals);\n const popModal = useModal((state) => state.popModal);\n\n /**\n * Prevent scroll on body when a popup is active\n */\n useEffect(() => {\n if (modals.length) {\n const scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.body.classList.add('noscroll');\n document.body.style.paddingRight = `${scrollbarWidth}px`;\n } else {\n document.body.classList.remove('noscroll');\n document.body.style.paddingRight = '';\n }\n }, [modals]);\n\n useEffect(() => {\n // Add event listener on the Escape button\n // Check if the last modal in the stack (the active one) is dismissable\n // If it is dismissable, pop it and go back to the previous modal.\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n const lastModal = modals[modals.length - 1];\n if (lastModal && !lastModal.noDismissOnEscape) {\n popModal();\n }\n }\n };\n\n // Remove the listener on update and set the new one\n window.removeEventListener('keydown', handler);\n window.addEventListener('keydown', handler);\n return (): void => {\n // Remove listener on unmount\n window.removeEventListener('keydown', handler);\n };\n }, [modals, popModal]);\n\n return (\n <>\n {children}\n <Suspense fallback={null}>\n <div\n className={classNames('TDB-Modal', {\n 'TDB-Modal--visible': modals.length,\n })}\n >\n <div\n className=\"TDB-Modal__Background\"\n onClick={flushModals}\n title=\"Dismiss modal\"\n />\n\n {/* <AnimatePresence> */}\n {modals.map((modalParams: ModalType, i: number) => {\n // Passing active prop to css-hide modals but keep their internal state\n const { name, ...rest } = modalParams;\n const active = i === modals.length - 1;\n return React.createElement(availableModals[name], {\n params: rest,\n active,\n key: `modal-${name}`,\n });\n })}\n {/* </AnimatePresence> */}\n </div>\n </Suspense>\n </>\n );\n};\n\nexport default ModalContainer;\n","import ModalContainer from './ModalContainer';\nexport * from './ModalContainer';\n\nexport default ModalContainer;\n","import replacePathParams from 'utils/helpers/replacePathParams';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { AxiosResponse } from 'axios';\nimport { useQuery } from '@tanstack/react-query';\nimport {\n ArrayApi_getArrayInfo,\n ArrayApi_getArrayInfo$Params,\n ArrayApi_getArrayInfo$Path,\n ArrayApi_getArrayInfo$Response,\n} from 'api-client';\n\nexport const createPath = (data: ArrayApi_getArrayInfo$Params): string =>\n replacePathParams(ArrayApi_getArrayInfo$Path, data);\n\nconst useGetArray: UseRequestType<\n ArrayApi_getArrayInfo$Params,\n ArrayApi_getArrayInfo$Response\n> = (queryData, config, queryConfig) => {\n const { isInitialLoading, data, error, refetch } = useQuery<\n AxiosResponse<ArrayApi_getArrayInfo$Response>,\n ArrayApi_getArrayInfo$Params\n >(\n [createPath(queryData), queryData],\n useQueryRequest(ArrayApi_getArrayInfo, config),\n queryConfig\n );\n return [refetch, data, error, isInitialLoading];\n};\n\nexport default useGetArray;\n","import useGetArray from './useGetArray';\n\nexport default useGetArray;\nexport * from './useGetArray';\n","import {\n AssetsApi_listAssetSummaries,\n AssetsApi_listAssetSummaries$Params,\n AssetsApi_listAssetSummaries$Response,\n} from 'api-client';\nimport { useQuery } from '@tanstack/react-query';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { AxiosResponse } from 'axios';\n\n// Generic query key to invalidate all asset listings\nexport const queryKey = 'asset-summaries';\n\n// Fetch the asset summary of a given namespace\nconst useListAssetSummaries: UseRequestType<\n AssetsApi_listAssetSummaries$Params,\n AssetsApi_listAssetSummaries$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<AssetsApi_listAssetSummaries$Response>\n >(\n [queryKey, queryData],\n useQueryRequest(AssetsApi_listAssetSummaries, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useListAssetSummaries;\n","import useListAssetSummaries from './useListAssetSummaries';\n\nexport default useListAssetSummaries;\nexport * from './useListAssetSummaries';\n","import replacePathParams from 'utils/helpers/replacePathParams';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { AxiosResponse } from 'axios';\nimport { useQuery } from '@tanstack/react-query';\nimport {\n GroupsApi_getGroup,\n GroupsApi_getGroup$Params,\n GroupsApi_getGroup$Path,\n GroupsApi_getGroup$Response,\n} from 'api-client';\n\nexport const createPath = (data: GroupsApi_getGroup$Params): string =>\n replacePathParams(GroupsApi_getGroup$Path, {\n group_name: data.groupName,\n group_namespace: data.groupNamespace,\n });\n\nconst useGetGroup: UseRequestType<\n GroupsApi_getGroup$Params,\n GroupsApi_getGroup$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<GroupsApi_getGroup$Response>,\n GroupsApi_getGroup$Params\n >(\n [createPath(queryData), queryData],\n useQueryRequest(GroupsApi_getGroup, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetGroup;\n","import useGetGroup from './useGetGroup';\n\nexport default useGetGroup;\nexport * from './useGetGroup';\n","import { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\nimport { AxiosResponse } from 'axios';\nimport {\n NotebookApi_getNotebookServerStatus,\n NotebookApi_getNotebookServerStatus$Params,\n NotebookApi_getNotebookServerStatus$Path,\n NotebookApi_getNotebookServerStatus$Response,\n} from 'api-client';\nimport replacePathParams from 'utils/helpers/replacePathParams';\n\nexport const getNotebookStatusKey = (ns: string) => {\n return replacePathParams(NotebookApi_getNotebookServerStatus$Path, {\n namespace: ns,\n });\n};\n\nconst useGetNotebookStatus: UseRequestType<\n NotebookApi_getNotebookServerStatus$Params,\n NotebookApi_getNotebookServerStatus$Response\n> = (queryData, config, queryConfig) => {\n const { data, error, refetch, isInitialLoading } = useQuery<\n AxiosResponse<NotebookApi_getNotebookServerStatus$Response>,\n NotebookApi_getNotebookServerStatus$Params\n >(\n [getNotebookStatusKey(queryData.namespace), queryData],\n useQueryRequest(NotebookApi_getNotebookServerStatus, config),\n queryConfig\n );\n return [refetch, data, error, isInitialLoading];\n};\n\nexport default useGetNotebookStatus;\n","import useGetNotebookStatus from './useGetNotebookStatus';\n\nexport * from './useGetNotebookStatus';\nexport default useGetNotebookStatus;\n","import { MutateResponse, useMutateRequest } from 'hooks/useRequest';\nimport { useMutation } from '@tanstack/react-query';\nimport {\n UserApi_setOnboardingItems,\n UserApi_setOnboardingItems$Params,\n UserApi_setOnboardingItems$Response,\n} from 'api-client';\n\nconst useAddCompletedOnboardingItems = (): MutateResponse<\n UserApi_setOnboardingItems$Params,\n UserApi_setOnboardingItems$Response\n> => {\n const { mutateAsync, isLoading, error, data } = useMutation(\n UserApi_setOnboardingItems\n );\n\n return [\n useMutateRequest(mutateAsync),\n data,\n error as null | Error,\n isLoading,\n ];\n};\n\nexport default useAddCompletedOnboardingItems;\n","import useAddCompletedOnboardingItems from './useAddCompletedOnboardingItems';\n\nexport default useAddCompletedOnboardingItems;\n","import {\n OrganizationApi_getOrganization,\n OrganizationApi_getOrganization$Params,\n OrganizationApi_getOrganization$Path,\n OrganizationApi_getOrganization$Response,\n} from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\nimport replacePathParams from 'utils/helpers/replacePathParams';\n\nexport const createPath = (\n data: OrganizationApi_getOrganization$Params\n): string => {\n const { organization } = data;\n return replacePathParams(OrganizationApi_getOrganization$Path, {\n organization,\n });\n};\n\nconst useGetOrganization: UseRequestType<\n OrganizationApi_getOrganization$Params,\n OrganizationApi_getOrganization$Response\n> = (queryData, config, queryConfig) => {\n const { data, error, refetch, isInitialLoading } = useQuery<\n AxiosResponse<OrganizationApi_getOrganization$Response>,\n OrganizationApi_getOrganization$Params\n >(\n [createPath(queryData), queryData],\n useQueryRequest(OrganizationApi_getOrganization, config),\n queryConfig\n );\n\n return [refetch, data, error, isInitialLoading];\n};\n\nexport default useGetOrganization;\n","import useGetOrganization from './useGetOrganization';\n\nexport default useGetOrganization;\nexport * from './useGetOrganization';\n","import { AxiosResponse } from 'axios';\nimport {\n ArrayTasksApi_getArrayTask,\n ArrayTasksApi_getArrayTask$Params,\n ArrayTasksApi_getArrayTask$Path,\n ArrayTasksApi_getArrayTask$Response,\n} from 'api-client';\nimport replacePathParams from 'utils/helpers/replacePathParams';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\n\nexport const createPath = (data: ArrayTasksApi_getArrayTask$Params): string =>\n replacePathParams(ArrayTasksApi_getArrayTask$Path, { id: data.id });\n\nconst useGetTaskDetails: UseRequestType<\n ArrayTasksApi_getArrayTask$Params,\n ArrayTasksApi_getArrayTask$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<ArrayTasksApi_getArrayTask$Response>,\n string\n >(\n [createPath(queryData), queryData],\n useQueryRequest(ArrayTasksApi_getArrayTask, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetTaskDetails;\n","import useGetTaskDetails from './useGetTaskDetails';\n\nexport default useGetTaskDetails;\nexport * from './useGetTaskDetails';\n","import { AxiosResponse } from 'axios';\nimport {\n TaskGraphLogsApi_getTaskGraphLog,\n TaskGraphLogsApi_getTaskGraphLog$Params,\n TaskGraphLogsApi_getTaskGraphLog$Path,\n TaskGraphLogsApi_getTaskGraphLog$Response,\n} from 'api-client';\nimport replacePathParams from 'utils/helpers/replacePathParams';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\n\nexport const createPath = (\n data: TaskGraphLogsApi_getTaskGraphLog$Params\n): string => replacePathParams(TaskGraphLogsApi_getTaskGraphLog$Path, data);\n\nconst useGetTaskGraphDetails: UseRequestType<\n TaskGraphLogsApi_getTaskGraphLog$Params,\n TaskGraphLogsApi_getTaskGraphLog$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<TaskGraphLogsApi_getTaskGraphLog$Response>,\n string\n >(\n [createPath(queryData), queryData],\n useQueryRequest(TaskGraphLogsApi_getTaskGraphLog, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetTaskGraphDetails;\n","import useGetTaskGraphDetails from './useGetTaskGraphDetails';\n\nexport default useGetTaskGraphDetails;\nexport * from './useGetTaskGraphDetails';\n","import queryString from 'query-string';\nimport { useLocation } from 'react-router-dom';\nimport { appsLinks } from 'utils/links';\n\nconst useIsUserInJupyterPage = () => {\n const { pathname, search } = useLocation();\n const queryParams = queryString.parse(search);\n const userIsInJupyterNotebookOrDashaboard = pathname.startsWith(\n appsLinks.server()\n );\n\n const dashboardParamIsPresent = 'dashboard' in queryParams;\n const userIsInJupyterNotebook =\n userIsInJupyterNotebookOrDashaboard && !dashboardParamIsPresent;\n\n return {\n userIsInDashboard: dashboardParamIsPresent,\n userIsInJupyterNotebook: Boolean(userIsInJupyterNotebook),\n userIsInJupyterNotebookOrDashaboard: Boolean(\n userIsInJupyterNotebookOrDashaboard\n ),\n };\n};\n\nexport default useIsUserInJupyterPage;\n","import useIsUserInJupyterPage from './useIsUserInJupyterPage';\n\nexport default useIsUserInJupyterPage;\n","import { useCallback } from 'react';\nimport { Theme } from 'store/ThemeContext';\nimport IframeActions from 'utils/constants/IframeActions';\n\nconst useJupyterOutgoingMessages = (\n iframe: React.MutableRefObject<HTMLIFrameElement | null>\n) => {\n const selectServerAndImageProfilesAndSubmit = useCallback(\n (\n fileProperties: Record<string, string>,\n callback: () => void,\n opts?: { preventSubmission?: boolean }\n ) => {\n const data = {\n action: IframeActions.TILEDB_AUTOLOAD_IMAGE,\n payload: {\n profile: fileProperties.size,\n image: fileProperties.image,\n preventSubmission: opts?.preventSubmission,\n },\n };\n iframe.current?.contentWindow?.postMessage(data, '*');\n callback();\n },\n [iframe]\n );\n\n const preSelectServerAndImageProfiles = useCallback(\n (fileProperties: Record<string, string>, callback?: () => void) => {\n const data = {\n action: IframeActions.TILEDB_AUTOLOAD_IMAGE,\n payload: {\n profile: fileProperties.size,\n image: fileProperties.image,\n preventSubmission: true,\n },\n };\n iframe.current?.contentWindow?.postMessage(data, '*');\n callback?.();\n },\n [iframe]\n );\n\n const sendMessageThatUserHasNoCredits = useCallback(() => {\n iframe.current?.contentWindow?.postMessage(\n IframeActions.TILEDB_NO_CREDITS,\n '*'\n );\n }, [iframe]);\n\n const sendMessageToRequestToHideSubmitButton = useCallback(() => {\n const data = {\n action: IframeActions.TILEDB_RENDER_NO_SUBMIT_BUTTON,\n };\n\n iframe.current?.contentWindow?.postMessage(data, '*');\n }, [iframe]);\n\n const sendMessageWithCurrentTheme = useCallback(\n (theme: Theme) => {\n iframe.current?.contentWindow?.postMessage(theme, '*');\n },\n [iframe]\n );\n\n const sendMessageToRequestUserSelection = useCallback(() => {\n const data = {\n action: IframeActions.TILEDB_REQUEST_SELECTIONS,\n };\n iframe.current?.contentWindow?.postMessage(data, '*');\n }, [iframe]);\n\n const sendMessageCredentialsUpdated = useCallback(() => {\n iframe.current?.contentWindow?.postMessage(\n IframeActions.TILEDB_UPDATED_CREDENTIALS,\n '*'\n );\n }, [iframe]);\n\n const sendMessageToRequestToOpenNotebook = useCallback(\n (payload: {\n notebookName: string;\n namespace: string;\n ownership: 'owned' | 'shared' | 'public';\n }) => {\n const { notebookName, namespace, ownership } = payload;\n\n iframe.current?.contentWindow?.postMessage(\n `tiledb_goto::cloud/${ownership}/${namespace}/${notebookName}.ipynb`,\n '*'\n );\n },\n [iframe]\n );\n\n return {\n selectServerAndImageProfilesAndSubmit,\n preSelectServerAndImageProfiles,\n sendMessageWithCurrentTheme,\n sendMessageToRequestToOpenNotebook,\n sendMessageThatUserHasNoCredits,\n sendMessageCredentialsUpdated,\n sendMessageToRequestUserSelection,\n sendMessageToRequestToHideSubmitButton,\n };\n};\n\nexport default useJupyterOutgoingMessages;\n","import useJupyterOutgoingMessages from './useJupyterOutgoingMessages';\n\nexport default useJupyterOutgoingMessages;\n","import { useEffect, useRef } from 'react';\n\ntype EventHandler = (e: Event) => void;\ntype MessageEventHandler = (e: MessageEvent) => void;\n\nfunction useEventListener(\n eventName: string,\n handler: EventHandler | MessageEventHandler,\n element = window\n): void {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler | MessageEventHandler>();\n\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n // ... without us needing to pass it in effect deps array ...\n // ... and potentially cause effect to re-run every render.\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n // Make sure element supports addEventListener\n // On\n const isSupported = element && element.addEventListener;\n if (!isSupported) {\n return;\n }\n\n // Create event listener that calls handler function stored in ref\n const eventListener = (event: any): void => savedHandler.current?.(event);\n\n // Add event listener\n element.addEventListener(eventName, eventListener);\n\n // Remove event listener on cleanup\n return (): void => {\n element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element] // Re-run if eventName or element changes\n );\n}\n\nexport default useEventListener;\n","import useEventListener from './useEventListener';\n\nexport default useEventListener;\n","import { NotebookSize, NotebookType } from 'api-client';\nimport useEventListener from 'hooks/useEventListener';\nimport IframeActions from 'utils/constants/IframeActions';\nimport { isString } from 'utils/helpers/string';\n\ninterface ServerProfile {\n slug: string;\n description?: string;\n display_name: string;\n memory: string;\n cpu: string;\n pricing?: string;\n}\n\nexport interface ImageProfile {\n slug: string;\n description?: string;\n display_name: string;\n package_list_url?: string;\n beta?: '' | 'True' | 'False';\n}\nexport interface ImagesAndServerProfiles {\n images: Record<string, ImageProfile>;\n servers: Record<string, ServerProfile>;\n}\n\ninterface ImageAndServerSelections {\n image: NotebookType;\n server: NotebookSize;\n}\n\ninterface NotebookFileProperties {\n image: NotebookType;\n server: NotebookSize;\n}\n\ninterface ImagesAndServerProfilesMessageEvent {\n payload: ImagesAndServerProfiles;\n action: IframeActions.TILEDB_AVAILABLE_PROFILES;\n}\n\ninterface VoilaHasLaunchedMessageEvent {\n action: IframeActions.TILEDB_VOILA_LAUNCHED;\n payload: {\n name: string;\n };\n}\n\ninterface JupyterhubProgressMessageEvent {\n action: IframeActions.TILEDB_NOTEBOOK_PROGRESS;\n payload: {\n progress: string;\n };\n}\n\ninterface JupyterhubProfileSelectionsMessageEvent {\n action: IframeActions.TILEDB_JUPYTERHUB_USER_SELECTIONS;\n payload: ImageAndServerSelections;\n}\n\ninterface JupyterlabCreateNewNotebookMessageEvent {\n action: IframeActions.TILEDB_CREATE_NOTEBOOK;\n}\n\ninterface JupyterlabLoaderMessageEvent {\n action:\n | IframeActions.TILEDB_SHOW_LOADER_START\n | IframeActions.TILEDB_SHOW_LOADER_STOP;\n payload: {\n title?: string;\n };\n}\n\ninterface JupyterhubUpdateFilePropertiesMessageEvent {\n action: IframeActions.TILEDB_UPDATE_FILE_PROPERTIES;\n payload: NotebookFileProperties;\n}\n\ntype IncomingMessageEvents =\n | ImagesAndServerProfilesMessageEvent\n | JupyterhubProgressMessageEvent\n | JupyterhubProfileSelectionsMessageEvent\n | VoilaHasLaunchedMessageEvent\n | JupyterlabCreateNewNotebookMessageEvent\n | JupyterhubUpdateFilePropertiesMessageEvent\n | JupyterlabLoaderMessageEvent\n | string\n | number;\n\ninterface IncomingMessageHandlers {\n onJupyterlabLaunching?: () => void;\n onVoilaLaunch?: (name: string) => void;\n onJupyterNotRunning?: () => void;\n onJupyterhubOrJupyterlabLoaded?: () => void;\n onJupyterlabLoaded?: () => void;\n onJupyterSpawnPageReady?: () => void;\n onJupyterProgress?: (progress: number) => void;\n onJupyterError?: () => void;\n onJupyterhubServerAndImageProfilesReceived?: (\n payload: ImagesAndServerProfiles\n ) => void;\n onJupyterhubUserRequestedCredits?: () => void;\n onJupyterLabExtensionOpenFileLoaded?: () => void;\n onJupyterLabShowLoaderRequest?: (title: string) => void;\n onJupyterLabHideLoaderRequest?: (title: string) => void;\n onJupyterAddCredentialsRequest?: () => void;\n onJupyterlabCreateNotebookRequest?: () => void;\n onJupyterhubUpdateFilePropertiesRequest?: (\n payload: NotebookFileProperties\n ) => void;\n onJupyterlabShareNotebookRequest?: (path: string) => void;\n onJupyterhubUserImageAndServerProfileSelection?: (\n selections: ImageAndServerSelections\n ) => void;\n}\n\nconst useOnJupyterIncomingMessage = (handlers: IncomingMessageHandlers) => {\n const {\n onJupyterlabLaunching,\n onJupyterNotRunning,\n onJupyterSpawnPageReady,\n onJupyterProgress,\n onJupyterError,\n onJupyterhubOrJupyterlabLoaded,\n onJupyterlabLoaded,\n onJupyterhubUserRequestedCredits,\n onJupyterhubServerAndImageProfilesReceived,\n onJupyterLabExtensionOpenFileLoaded,\n onJupyterLabShowLoaderRequest,\n onVoilaLaunch,\n onJupyterLabHideLoaderRequest,\n onJupyterAddCredentialsRequest,\n onJupyterlabCreateNotebookRequest,\n onJupyterhubUpdateFilePropertiesRequest,\n onJupyterlabShareNotebookRequest,\n onJupyterhubUserImageAndServerProfileSelection,\n } = handlers;\n\n useEventListener(\n 'message',\n async (event: MessageEvent<IncomingMessageEvents>) => {\n if (event.data === IframeActions.TILEDB_JUPYTERLAB_LAUNCHING) {\n onJupyterlabLaunching?.();\n }\n\n if (event.data === IframeActions.TILEDB_JUPYTER_NOT_RUNNING) {\n onJupyterNotRunning?.();\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_AVAILABLE_PROFILES\n ) {\n onJupyterhubServerAndImageProfilesReceived?.(event.data.payload);\n }\n\n if (event.data === IframeActions.TILEDB_SPAWN_READY) {\n onJupyterSpawnPageReady?.();\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_NOTEBOOK_PROGRESS\n ) {\n const progressText = event.data.payload.progress;\n const progressNumber = Number(progressText);\n\n onJupyterProgress?.(progressNumber);\n }\n\n if (event.data === IframeActions.TILEDB_ERROR_500) {\n onJupyterError?.();\n }\n\n if (event.data === IframeActions.TILEDB_JUPYTERHUB_OR_JUPYTERLAB_LOADED) {\n onJupyterhubOrJupyterlabLoaded?.();\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_JUPYTERHUB_USER_SELECTIONS\n ) {\n const { image, server } = event.data.payload;\n onJupyterhubUserImageAndServerProfileSelection?.({ image, server });\n }\n\n if (event.data === IframeActions.TILEDB_JUPYTERLAB_LOADED) {\n onJupyterlabLoaded?.();\n }\n\n if (event.data === IframeActions.TILEDB_REQUEST_CREDITS) {\n onJupyterhubUserRequestedCredits?.();\n }\n\n if (event.data === IframeActions.TILEDB_OPEN_FILE_EXTENSION_LOADED) {\n onJupyterLabExtensionOpenFileLoaded?.();\n }\n\n /**\n * Case Jupyter prompt options plugin sends message to open\n * \"Add credentials\" modal. We show to the user and send back\n * a message to the iframe upon success in order to update the\n * credentials select input with the updated ones.\n */\n if (event.data === IframeActions.TILEDB_ADD_CREDENTIALS) {\n onJupyterAddCredentialsRequest?.();\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_CREATE_NOTEBOOK\n ) {\n onJupyterlabCreateNotebookRequest?.();\n }\n\n if (\n isString(event.data) &&\n event.data.startsWith(IframeActions.TILEDB_NOTEBOOK_SHARING_PREFIX)\n ) {\n const notebookCloudPath = event.data.slice(\n IframeActions.TILEDB_NOTEBOOK_SHARING_PREFIX.length\n );\n onJupyterlabShareNotebookRequest?.(notebookCloudPath);\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_SHOW_LOADER_START\n ) {\n const title = event.data?.payload?.title || 'Loading';\n\n onJupyterLabShowLoaderRequest?.(title);\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_SHOW_LOADER_STOP\n ) {\n const title = event.data?.payload?.title || 'Completed';\n\n onJupyterLabHideLoaderRequest?.(title);\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_VOILA_LAUNCHED\n ) {\n onVoilaLaunch?.(event.data.payload.name);\n }\n\n if (\n typeof event.data === 'object' &&\n event.data.action === IframeActions.TILEDB_UPDATE_FILE_PROPERTIES\n ) {\n const { payload } = event.data;\n const { image, server } = payload;\n onJupyterhubUpdateFilePropertiesRequest?.({\n image,\n server,\n });\n }\n }\n );\n};\n\nexport default useOnJupyterIncomingMessage;\n","import useOnJupyterIncomingMessage from './useOnJupyterIncomingMessage';\n\nexport default useOnJupyterIncomingMessage;\nexport * from './useOnJupyterIncomingMessage';\n","import useInterval from 'hooks/useInterval/useInterval';\nimport useJupyter, { JupyterStatus } from 'store/JupyterStore';\nimport useOnJupyterIncomingMessage from '../useOnJupyterIncomingMessage';\n\ninterface WaitForNotebookShutDown {\n callback: () => void;\n reRenderIframe: () => void;\n}\n\ntype useWaitHook = (props: WaitForNotebookShutDown) => void;\n\n/**\n * Hook that tracks when a notebook pod has shut down completely.\n * Even though we might receive 404 from status route, it doesn't mean the\n * pod shut down completely. That's why we use a hidden iframe and reload it\n * every 10sec, waiting when hub spawn options are ready again.\n * If message comes from the hidden iframe, it means we can safely reload\n * main iframe to show the spawn options page.\n */\nconst useWaitForJupyterhubToBeReadyAfterShutdown: useWaitHook = ({\n callback,\n reRenderIframe,\n}) => {\n const status = useJupyter((state) => state.status);\n\n useOnJupyterIncomingMessage({\n onJupyterSpawnPageReady: () => {\n /**\n * When we get \"spawn_options_ready\" message during shutting down,\n * it means notebook has shut down completely.\n */\n if (status === JupyterStatus.ShuttingDown) {\n callback();\n }\n },\n });\n\n useInterval(() => {\n if (\n status === JupyterStatus.ShuttingDown ||\n status === JupyterStatus.NotRunning ||\n status === JupyterStatus.ServiceUnavailable ||\n status === JupyterStatus.ErrorEncountered\n ) {\n /**\n * Update key to force hidden iframe to reload, until pod\n * has shut down and hub options page can be displayed\n */\n reRenderIframe();\n }\n }, 10_000);\n};\n\nexport default useWaitForJupyterhubToBeReadyAfterShutdown;\n","import useWaitForJupyterhubToBeReadyAfterShutdown from './useWaitForJupyterhubToBeReadyAfterShutdown';\n\nexport default useWaitForJupyterhubToBeReadyAfterShutdown;\n","import isNumber from 'utils/helpers/number/isNumber';\n\nconst epochToDate = (timestamp: number) => {\n if (!isNumber(timestamp)) {\n return new Date();\n }\n const dateObject = new Date(0);\n dateObject.setUTCSeconds(timestamp);\n return dateObject;\n};\n\nexport default epochToDate;\n","import epochToDate from './epochToDate';\n\nexport default epochToDate;\n","import millisecondsToSeconds from './millisecondsToSeconds';\n\nexport default millisecondsToSeconds;\n","const millisecondsToSeconds = (ms: number) => {\n if (typeof ms !== 'number') {\n return 0;\n }\n\n return ms / 1000;\n};\n\nexport default millisecondsToSeconds;\n","import fragmentTimestampToDate from './fragmentTimestampToDate';\n\nexport default fragmentTimestampToDate;\n","import epochToDate from '../epochToDate';\nimport millisecondsToSeconds from '../millisecondsToSeconds';\n\n/**\n * Fragment timestamps are in milliseconds\n * BUT\n * Due to a bug in REST some timestamps were saved in seconds\n * As a result we have to support both\n */\nconst fragmentTimestampToDate = (ts: number) => {\n let timestamp = ts;\n\n /**\n * Get current unix timestamp (UTC) and check against the input\n * Check if timestamp is off by 1000 and convert it to seconds\n */\n const utcDate = new Date().toUTCString();\n const currentUTCTimestamp = new Date(utcDate).getTime();\n const tsDiff = currentUTCTimestamp / timestamp;\n if (tsDiff > 0.1 && tsDiff < 10) {\n timestamp = millisecondsToSeconds(timestamp);\n }\n\n return epochToDate(timestamp);\n};\n\nexport default fragmentTimestampToDate;\n","import { formatTimezonedDate } from '../date';\nimport fragmentTimestampToDate from '../fragmentTimestampToDate';\n\nconst fragmentTimestampToDateTime = (\n timestamp: number,\n timezone: string\n): string => {\n const date = fragmentTimestampToDate(timestamp);\n return formatTimezonedDate(timezone, date, 'dd MMM yyyy hh:mm:ss');\n};\n\nexport default fragmentTimestampToDateTime;\n","import fragmentTimestampToDateTime from './fragmentTimestampToDateTime';\n\nexport default fragmentTimestampToDateTime;\n","import { useUserContext } from 'store/UserContext';\nimport {\n formatTimezonedDate,\n relativeTimeInWordsToNow,\n} from 'utils/helpers/date';\nimport fragmentTimestampToDateTime from 'utils/helpers/date/fragmentTimestampToDateTime';\n\nexport interface UseDate {\n dateTime: (value: string | number | Date) => string;\n relativeTimeInWordsToNow: (value: string | number | Date) => string;\n formatDate: (value: string | number | Date, dateFormat?: string) => string;\n fragmentTimestampToDateTime: (value: number, dateFormat?: string) => string;\n}\n\n/**\n * Returns date helper functions which will convert date to user's timezone\n */\nfunction useDate(): UseDate {\n const { user } = useUserContext();\n\n const timezone =\n user?.timezone || Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n return {\n relativeTimeInWordsToNow,\n dateTime: (value: string | number | Date): string =>\n formatTimezonedDate(timezone, value, 'd MMM yyyy h:mma'),\n formatDate: (\n value: string | number | Date,\n dateFormat = 'dd MMM yyyy'\n ): string => formatTimezonedDate(timezone, value, dateFormat),\n fragmentTimestampToDateTime: (timestamp: number): string =>\n fragmentTimestampToDateTime(timestamp, timezone),\n };\n}\n\nexport default useDate;\n","import useDate from './useDate';\n\nexport default useDate;\nexport * from './useDate';\n","import { useRef, useEffect } from 'react';\n\n/**\n * Will run callback only on args update and NOT on mount\n */\nfunction useDidUpdateEffect(fn: Function, args: any[]): void {\n const didMountRef = useRef(false);\n\n useEffect(() => {\n if (didMountRef.current) {\n // run callback if didMount is set to true\n fn();\n } else {\n // istead of running callback, set didMount to true\n didMountRef.current = true;\n }\n // eslint-disable-next-line\n }, args);\n}\n\nexport default useDidUpdateEffect;\n","import useDidUpdateEffect from './useDidUpdateEffect';\n\nexport default useDidUpdateEffect;\n","import { useEffect, useState } from 'react';\nimport eventBus from 'utils/helpers/eventBus';\nimport { EventTypes } from 'utils/helpers/eventBus/eventBus';\n\nfunction useEvent(type: EventTypes): any {\n const [data, setData] = useState();\n\n useEffect(() => {\n const sub = eventBus.on(type, (d: any) => {\n setData(d);\n });\n\n return (): void => {\n sub.unsubscribe();\n };\n }, [type]);\n\n return data;\n}\n\nexport default useEvent;\n","import useEvent from './useEvent';\n\nexport default useEvent;\n","import { useRef, MutableRefObject, useEffect } from 'react';\n\n/**\n * Hook to set focus on element\n * @param auto Automatically auto focuses input on mount\n */\nfunction useFocus(auto?: boolean): [MutableRefObject<null>, Function] {\n const htmlElRef: MutableRefObject<any> = useRef();\n const setFocus = (): void => {\n htmlElRef?.current?.focus();\n htmlElRef?.current?.select();\n };\n\n useEffect(() => {\n auto && setFocus();\n }, [auto]);\n\n return [htmlElRef, setFocus];\n}\n\nexport default useFocus;\n","import useFocus from './useFocus';\n\nexport default useFocus;\n","import { useEffect, useRef } from 'react';\n\nfunction useInterval(\n callback: () => void,\n delay: number,\n immediate?: boolean\n): void {\n const savedCallback = useRef<Function>();\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Execute callback if immediate is set.\n useEffect(() => {\n if (!immediate) {\n return;\n }\n savedCallback.current?.();\n }, [immediate]);\n\n // Set up the interval.\n useEffect(() => {\n function tick(): void {\n savedCallback.current?.();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return (): void => clearInterval(id);\n }\n }, [delay]);\n}\n\nexport default useInterval;\n","import { useEffect, useCallback } from 'react';\n\nfunction useKeyDown(key: any, callback: Function, args: any[]): void {\n const handler = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === key) {\n callback();\n }\n },\n [callback, key]\n );\n\n useEffect(() => {\n window.addEventListener('keydown', handler);\n return (): void => {\n window.removeEventListener('keydown', handler);\n };\n }, [handler]);\n}\n\nexport default useKeyDown;\n","import useKeyDown from './useKeyDown';\n\nexport default useKeyDown;\n","import { useState } from 'react';\n\nfunction useLocalStorage(\n key: string,\n initialValue?: string\n): [string | undefined, Function] {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = localStorage.getItem(key);\n return item || initialValue;\n } catch (error) {\n return initialValue;\n }\n });\n\n const setValue = (value: string): void => {\n try {\n setStoredValue(value);\n localStorage.setItem(key, value);\n } catch (error) {}\n };\n\n return [storedValue, setValue];\n}\n\nexport default useLocalStorage;\n","import useLocalStorage from './useLocalStorage';\n\nexport default useLocalStorage;\n","import { useEffect, useRef } from 'react';\n\n/**\n * Hook that runs functions ONCE on mount\n * @param args comma separated functions\n */\nfunction useMount(...args: Function[]): void {\n const result = useRef();\n useEffect(() => {\n args.forEach((arg) => {\n if (typeof arg === 'function') {\n result.current = arg();\n } else {\n // istanbul ignore next\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line\n console.warn(`Argument ${arg} passed in useMount is not a function.`);\n }\n }\n });\n\n if (typeof result.current === 'function') {\n return result.current;\n }\n // eslint-disable-next-line\n }, []);\n}\n\nexport default useMount;\n","import useMount from './useMount';\n\nexport default useMount;\n","import React from 'react';\n\ntype EventTypeNames = 'mousedown' | 'touchstart';\nconst eventTypes: EventTypeNames[] = ['mousedown', 'touchstart'];\n\nexport const DEFAULT_IGNORE_CLASS = 'ignore-onclickoutside';\n\ninterface Options {\n ignoreClass?: string;\n}\n\nconst hasIgnoreClass = (e: any, ignoreClass: string): boolean => {\n let el = e.target;\n while (el) {\n if (el.classList.contains(ignoreClass)) {\n return true;\n }\n el = el.parentElement;\n }\n\n return false;\n};\n\nconst defaultProps = {\n ignoreClass: DEFAULT_IGNORE_CLASS,\n};\n\nconst useOutsideClick = (\n ref: React.RefObject<HTMLDivElement>,\n callback: () => void,\n { ignoreClass = DEFAULT_IGNORE_CLASS }: Options = defaultProps\n) => {\n const handleClick = (e: MouseEvent | TouchEvent): void => {\n if (hasIgnoreClass(e, ignoreClass)) {\n return;\n }\n if (ref.current && !ref.current.contains(e.target as HTMLElement)) {\n callback();\n }\n };\n\n const removeEventListeners = (): void => {\n eventTypes.forEach((type) => {\n document.removeEventListener(type, handleClick);\n });\n };\n\n React.useEffect(() => {\n eventTypes.forEach((type) => {\n document.addEventListener(type, handleClick);\n });\n\n return (): void => {\n removeEventListeners();\n };\n });\n};\n\nexport default useOutsideClick;\n","import useOnClickOutside from './useOnClickOutside';\nexport * from './useOnClickOutside';\n\nexport default useOnClickOutside;\n","import { useCallback } from 'react';\nimport { FormikHelpers } from 'formik';\nimport { AxiosResponse, AxiosError, AxiosPromise } from 'axios';\nimport capitalizeFirstLetter from 'utils/helpers/string/capitalizeFirstLetter';\nimport { identity } from 'ramda';\nimport {\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n UseMutateAsyncFunction,\n UseQueryOptions,\n} from '@tanstack/react-query';\nimport sessionStorageKeys from 'utils/constants/sessionStorageKeys';\nimport useSnackbar, { ShowSnackbarType } from 'store/SnackbarStore';\nimport { useUserContext } from 'store/UserContext';\nimport history from 'utils/helpers/history';\nimport { authLinks } from 'utils/links';\nimport logoutHandler from 'utils/helpers/logoutHandler';\nimport { ModelError } from 'api-client';\nimport { isString } from 'utils/helpers/string';\nimport isObject from 'utils/helpers/isObject';\n\n/**\n * Golang codes to force hide snackbar\n */\nexport const noSnackbarErrors: number[] = [\n 481, // 481, 482, 4004 codes mean the user has not confirmed their email\n 482, // 481, 482, 4004 codes mean the user has not confirmed their email\n 4004, // 481, 482, 4004 codes mean the user has not confirmed their email\n];\n\n/**\n * The type of the params of the mutation requests\n */\nexport type MutationFunctionParams<T> = [T, ApiRequestConfig<T>] | [T];\n\n/**\n * Same type as a mutation function but it doesn't return anything,\n * Used in components with callbacks such as modals,\n * that call Mutations and return void instead of the promise\n */\nexport type MutationFunctionRetunVoid<T> = (\n data: MutationFunctionParams<T>\n) => void;\n\nexport interface ApiRequestConfig<T> {\n /**\n * If it should NOT show snackbar after request.\n */\n noSnackbar?: boolean;\n /**\n * Formik helpers.\n */\n helpers?: FormikHelpers<T>;\n /**\n * Function to transform data from the api to have\n * the same structure like the ones in the form.\n */\n mapDataToFormValues?: (v: T) => any;\n}\n/**\n * MutateFn is the mutateAsync that the useMutation returns.\n * More info https://react-query.tanstack.com/reference/useMutation\n */\ntype MutateFn<T, F> = UseMutateAsyncFunction<F, unknown, T, unknown>;\n/**\n * MutationFnRequest is the result after we wrap react-query's \"mutateAsync\"\n * with our useMutateRequest helper hook\n */\nexport type MutationFnRequest<T, F> = (\n vars: MutationFunctionParams<T>\n) => Promise<void | AxiosResponse<F>>;\n\nexport type MutateResponse<T, F> = [\n MutationFnRequest<T, F>,\n AxiosResponse<F> | undefined,\n null | Error,\n boolean\n];\n\nexport function useMutateRequest<Params, Resp>(\n apiFunc: MutateFn<Params, Resp>\n) {\n const { isLoggedIn } = useUserContext();\n const showSnackbar = useSnackbar((state) => state.showSnackbar);\n const mutateRequest = useCallback(\n (params: MutationFunctionParams<Params>) => {\n const [data, config = {}] = params;\n\n config.helpers?.setSubmitting(true);\n return apiFunc(data)\n .then(onMutateSubmit<Params, Resp>(config, data))\n .catch(onCatch(config, showSnackbar, isLoggedIn));\n },\n [apiFunc, showSnackbar, isLoggedIn]\n );\n\n return mutateRequest;\n}\n\nconst onMutateSubmit =\n <T, F>(config: ApiRequestConfig<T> | undefined, data: T) =>\n (res: F) => {\n // Update formik props for loading indicator\n const dataMapper = config?.mapDataToFormValues || identity;\n config?.helpers?.setSubmitting(false);\n const transformedData = dataMapper(data);\n // Reset form status but keep data\n config?.helpers?.resetForm({ values: transformedData });\n\n return res;\n };\n\nexport type RefetchType<T> = (\n options?: RefetchOptions\n) => Promise<QueryObserverResult<T>>;\n\nexport type UseRequestType<T, F> = (\n queryData: T,\n config?: ApiRequestConfig<T> | undefined,\n queryConfig?: UseQueryOptions<AxiosResponse<F>, any, AxiosResponse<F>>\n) => [\n RefetchType<AxiosResponse<F>>,\n AxiosResponse<F> | undefined,\n unknown,\n boolean\n];\n\nexport type QueryRequestType<T, F> = (\n data: QueryOptions<T, unknown, F>\n) => AxiosPromise<F>;\n\nexport function useQueryRequest<Params, Resp>(\n apiFunc: (data: Params) => AxiosPromise<Resp>,\n config: ApiRequestConfig<any> = {}\n) {\n const { isLoggedIn } = useUserContext();\n const showSnackbar = useSnackbar((state) => state.showSnackbar);\n /**\n * Function that will do the actual request to the api\n * It will update the state automatically with response and error\n */\n const callRequest = useCallback<QueryRequestType<Params, Resp>>(\n ({ queryKey }): AxiosPromise<Resp> => {\n // Update formik props for loading indicator\n config.helpers?.setSubmitting(true);\n const [, data] = queryKey as any[];\n\n // Make request by calling the api function\n return apiFunc(data)\n .then(onSubmit(config, data))\n .catch(onCatch(config, showSnackbar, isLoggedIn)) as AxiosPromise<Resp>;\n },\n [apiFunc, config, showSnackbar, isLoggedIn]\n );\n\n return callRequest;\n}\n\nconst onSubmit =\n <T, F>(config: ApiRequestConfig<T> | undefined, data?: T) =>\n (res: AxiosResponse<F>) => {\n // Update formik props for loading indicator\n const dataMapper = config?.mapDataToFormValues || identity;\n config?.helpers?.setSubmitting(false);\n const transformedData = dataMapper(data as T);\n // Reset form status but keep data\n config?.helpers?.resetForm({ values: transformedData });\n\n return res;\n };\n\nconst onCatch =\n (\n config: ApiRequestConfig<any>,\n showSnackbar: ShowSnackbarType,\n isLoggedIn: boolean\n ) =>\n (ex: AxiosError<ModelError>): void => {\n const { response } = ex;\n let { noSnackbar = false } = config;\n // Update formik props for loading indicator\n config?.helpers?.setSubmitting(false);\n /**\n * Force-hide snackbar on specific golang codes\n */\n if (\n response?.data?.code &&\n noSnackbarErrors.includes(response?.data?.code)\n ) {\n noSnackbar = true;\n }\n\n /**\n * Force logout on 401 status\n * We use setTimeout to call it asynchronously, otherwise \"react-query\"\n * will throw a cancelled Error instead of the original error object\n */\n if (response?.status === 401) {\n if (isLoggedIn) {\n // if user is logged in, redirect them to logout page which handles all logout logic\n history.push(authLinks.logout());\n } else {\n /**\n * If user is not logged in clear everything ui-side.\n *\n * This function call is important to log the user out from jupyterhub.\n *\n * If the user is not logged in but already have valid jupyterhub cookies,\n * they may log in with a different account to tiledb cloud, and then log in to the previous user's jupyterhub instance.\n * To prevent this we need to clear jh cookies on a 401 to make sure they reset after a new cloud login.\n */\n logoutHandler();\n }\n // Don't show snackbar for 401 since we show a warning in Signin page\n sessionStorage.setItem(sessionStorageKeys.INVALID_TOKEN, 'true');\n noSnackbar = true;\n }\n\n /**\n * If the user is NOT logged in and receives a 403, redirect them to login page\n * We treat 403 as a 401 in this case for UX reasons\n */\n if (response?.status === 403 && !isLoggedIn) {\n noSnackbar = true;\n history.push(authLinks.login());\n }\n\n let message = ex.message || 'Unexpected error'; // Default message is the exception message\n const data = response?.data;\n\n if (response?.status === 500) {\n /**\n * If status is 500 and there is a message field in the payload it means that the error is handled\n * and that we should show that message to the user\n */\n if (isObject(data) && !!data.message) {\n message = data.message;\n }\n } else {\n if (data) {\n if (isString(data)) {\n message = data;\n } else if (isObject(data) && !!data.message) {\n message = data.message;\n }\n } else {\n if (response?.statusText) {\n message = response?.statusText;\n }\n }\n }\n /**\n * Message for request timeout\n */\n if (ex.code === 'ECONNABORTED') {\n message =\n 'Could not connect to the server. Please check your internet connection.';\n }\n\n !noSnackbar &&\n showSnackbar({\n title: capitalizeFirstLetter(message),\n variant: 'error',\n });\n throw ex;\n };\n","import { RefObject, useCallback, useLayoutEffect, useRef } from 'react';\n\ninterface UseScrollPositionResult {\n scrollTop: number;\n height: number;\n scrollHeight: number;\n}\n\ntype UseScrollPositionCallback = (result: UseScrollPositionResult) => void;\n\nconst getScrollPosition = (refElement: RefObject<HTMLElement>) => {\n const target = refElement.current;\n\n if (!target) {\n return { scrollHeight: 0, scrollTop: 0, height: 0 };\n }\n\n const scrollTop = target.scrollTop;\n const scrollHeight = target.scrollHeight;\n const height = target.getBoundingClientRect().height || 0;\n\n return {\n scrollHeight,\n scrollTop,\n height,\n };\n};\n\nconst useScrollPosition = (\n callback: UseScrollPositionCallback,\n ref: RefObject<HTMLElement>\n) => {\n const element = ref.current;\n const result = useRef<any>(getScrollPosition(ref));\n\n const setPosition = useCallback(() => {\n const currentPosition = getScrollPosition(ref);\n result.current = currentPosition;\n callback(result.current);\n }, [ref, callback]);\n\n useLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n element.addEventListener('scroll', setPosition);\n\n return () => element.removeEventListener('scroll', setPosition);\n }, [element, setPosition]);\n};\n\nexport default useScrollPosition;\n","import useScrollPosition from './useScrollPosition';\n\nexport default useScrollPosition;\n","import { useState } from 'react';\nimport sessionStorageKeys from 'utils/constants/sessionStorageKeys';\n\nfunction useSessionStorage(\n key: sessionStorageKeys,\n initialValue?: string\n): [string | undefined, Function, Function] {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = sessionStorage.getItem(key);\n return item || initialValue;\n } catch (error) {\n return initialValue;\n }\n });\n\n const setValue = (value: string): void => {\n try {\n setStoredValue(value);\n sessionStorage.setItem(key, value);\n } catch (error) {}\n };\n\n const removeValue = (): void => {\n try {\n setStoredValue(undefined);\n sessionStorage.removeItem(key);\n } catch (error) {}\n };\n\n return [storedValue, setValue, removeValue];\n}\n\nexport default useSessionStorage;\n","import useSessionStorage from './useSessionStorage';\n\nexport default useSessionStorage;\n","import { useContext } from 'react';\nimport ThemeContext, { Theme } from 'store/ThemeContext';\n\ninterface UseTheme {\n theme: Theme.Dark | Theme.Light;\n changeTheme: (theme: Theme) => void;\n themeTabSelected: Theme;\n}\n\nfunction useTheme(): UseTheme {\n const { theme, changeTheme, themeTabSelected } =\n useContext<UseTheme>(ThemeContext);\n\n return { theme, changeTheme, themeTabSelected };\n}\n\nexport default useTheme;\n","import useTheme from './useTheme';\n\nexport default useTheme;\n","import { useRef, useEffect } from 'react';\n\n/**\n * Custom hook to use setTimeout in functional components without memory leaks\n */\nfunction useTimeout(callback: Function, delay: number, args: Array<any>): void {\n const timeout = useRef<number>();\n useEffect(() => {\n clearTimeout(timeout.current);\n\n timeout.current = setTimeout(callback, delay);\n\n return (): void => {\n clearTimeout(timeout.current);\n };\n // eslint-disable-next-line\n }, [delay, ...args]);\n}\n\nexport default useTimeout;\n","import useTimeout from './useTimeout';\n\nexport default useTimeout;\n","import React from 'react';\nimport './NotFound.scss';\nimport { useHistory } from 'react-router-dom';\nimport Page from 'components/Page';\nimport { rootPath } from 'utils/links';\nimport Placeholder from 'components/v2/Placeholder';\n\nfunction NotFound(): JSX.Element {\n const history = useHistory();\n\n return (\n <Page\n name=\"TDB-NotFound\"\n className=\"d-flex column align-center justify-center\"\n title=\"Not found\"\n width=\"100%\"\n >\n <Placeholder\n dataTestId=\"not-found-error\"\n graphic=\"unexpected-error\"\n title=\"Page not found\"\n description=\"The page you are looking for might have been removed, had its name changed or is temporary unavailable.\"\n actions={[\n {\n variant: 'primary',\n size: 'large',\n children: 'Go to home page',\n onClick: (): void => {\n history.push(rootPath);\n },\n },\n ]}\n />\n </Page>\n );\n}\n\nexport default NotFound;\n","import NotFound from './NotFound';\n\nexport default NotFound;\n","import { FunctionComponent, ReactNode } from 'react';\nimport { create } from 'zustand';\n\nexport interface HeaderRenderProps {\n isLoggedIn: boolean;\n}\n\ntype HeaderVariant = 'transparent';\n\nexport interface HeaderContent {\n icon?: FunctionComponent<any>;\n variant?: HeaderVariant | undefined;\n render?: (props: HeaderRenderProps) => ReactNode;\n}\n\ninterface HeaderStore {\n HeaderContent: HeaderContent;\n setHeaderContent: (headerContent: HeaderContent) => void;\n}\n\nconst useStore = create<HeaderStore>((set, get) => ({\n HeaderContent: {\n icon: undefined,\n render: undefined,\n variant: undefined,\n },\n setHeaderContent: (header: HeaderContent) => {\n return set((state: HeaderStore) => ({\n HeaderContent: header,\n }));\n },\n}));\n\nexport default useStore;\n","import HeaderStore from './HeaderStore';\n\nexport * from './HeaderStore';\nexport default HeaderStore;\n","import { create } from 'zustand';\nimport HistoryItem from './HistoryItem';\n\nexport interface HistoryStackState {\n historyItems: HistoryItem[];\n push: (item: HistoryItem) => void;\n flush: () => void;\n peek: (n?: number) => HistoryItem | undefined;\n isEmpty: () => boolean;\n pop: () => HistoryItem | undefined;\n goBack: (n?: number) => HistoryItem | undefined;\n}\n\nconst useHistoryStore = create<HistoryStackState>((set, get) => ({\n historyItems: [],\n push: (item: HistoryItem) => {\n const items = get().historyItems;\n const concatenatedItems = [...items, item];\n\n set((state: HistoryStackState) => ({\n historyItems: concatenatedItems,\n }));\n },\n pop: () => {\n return get().historyItems.pop();\n },\n flush: () => {\n set(() => ({\n historyItems: [],\n }));\n },\n peek: (n = 1) => {\n const items = get().historyItems;\n return items[items.length - n];\n },\n isEmpty: () => {\n return get().historyItems.length === 0;\n },\n goBack: (n = 1) => {\n const historyItems = get().historyItems;\n const removeNItems = historyItems.slice(0, n * -1);\n\n set(() => ({\n historyItems: removeNItems,\n }));\n\n return get().peek();\n },\n}));\n\nexport const useGetNavigationItemsSinceRoot = (state: HistoryStackState) => {\n const { historyItems, peek } = state;\n /**\n * Get index of the last \"root\" pathname, to get navigation.\n * Imagine history stack as (0) /overview | (1) /assets | (2) /arrays/demo-username/demo-array\n * The navigation starts from index 1, where the last root pathname is located.\n */\n const rootIndex = historyItems.findLastIndex((item: any) => {\n return item.isRoot;\n });\n const lastItem = peek();\n /**\n * Get current (last) route key\n */\n const lastItemKey = lastItem?.key;\n\n const historyNavigation = historyItems.slice(\n -1 * (historyItems.length - rootIndex)\n );\n\n /**\n * Current navigation should be from latest \"root\" pathname until we find last item's key\n * In case of user is using browser history, there might be multiple items with the same key\n * e.g. /assets -> /groups/demo-username/demo-group -> /arrays/demo-username/demo-array -> /groups/demo-username/demo-group₁\n *\n * ₁ User used browser history to move back. The navigation still should be until the first occurrence of the last item:\n * /assets -> /groups/demo-username/demo-group\n * *\n */\n if (lastItemKey) {\n const itemWithSameKey = historyNavigation.findIndex(\n (item: any) => item?.key === lastItemKey\n );\n\n return historyNavigation.slice(0, itemWithSameKey + 1);\n }\n\n return historyNavigation;\n};\n\nexport const peekNItemInNavigationSelector = (\n state: HistoryStackState,\n n: number\n) => {\n //eslint-disable-next-line react-hooks/rules-of-hooks\n const navigationItems = useGetNavigationItemsSinceRoot(state);\n\n return navigationItems[navigationItems.length - n];\n};\n\nexport default useHistoryStore;\n\n(window as any).a = useHistoryStore.getState;\n","import useHistoryStore from './HistoryStack';\n\nexport * from './HistoryStack';\nexport default useHistoryStore;\n","import { createWithEqualityFn } from 'zustand/traditional';\nimport { shallow } from 'zustand/shallow';\nimport {\n ArrayApi_getArrayInfo,\n ModelError,\n NotebookSize,\n NotebookStatus,\n NotebookType,\n PodStatus,\n} from 'api-client';\nimport { dissoc } from 'ramda';\nimport getJupyterURL from 'utils/helpers/getJupyterURL';\nimport { AxiosError } from 'axios';\nimport isAxiosError from 'utils/helpers/isAxiosError';\nimport { appsLinks } from 'utils/links';\n\nexport enum JupyterStatus {\n Idle = 'idle',\n Unknown = 'unknown',\n ShuttingDown = 'shutting_down',\n ErrorEncountered = 'error_encountered',\n Launching = 'launching',\n Running = 'Running',\n NotRunning = 'not_running',\n ServiceUnavailable = 'service_unavailable',\n}\n\ninterface JupyterSession {\n image: NotebookType;\n server: NotebookSize;\n region?: string;\n}\n\nexport enum TaskType {\n LaunchNotebook,\n}\n\nexport interface QueuedTask {\n action: TaskType;\n payload?: Record<string, string>;\n callback?: () => void;\n}\n\nexport interface JupyterNotebook {\n arrayName: string;\n arrayId: string;\n namespace: string;\n}\n\ninterface JupyterStore {\n image?: NotebookType;\n server?: NotebookSize;\n status: JupyterStatus;\n progress: number;\n lastSession?: JupyterSession;\n jupyterURL: string;\n dashboardsLoaded: Record<string, boolean>;\n queuedTasks: QueuedTask[];\n pushQueuedTask: (task: QueuedTask) => void;\n clearQueuedTasks: () => void;\n setDashboardAsLoaded: (dashboardName: string) => void;\n launchNotebookServer: (image: NotebookType, server: NotebookSize) => void;\n getNotebookURL: () => string;\n getDashboardURL: (id: string) => string;\n shutDownJupyterNotebook: (region?: string) => void;\n setLaunchingProgress: (progress: number) => void;\n setIdle: () => void;\n notebook?: JupyterNotebook;\n setNotebook: (n?: JupyterNotebook) => void;\n dashboards: Record<string, JupyterNotebook>;\n addDashboard: (n: JupyterNotebook) => void;\n removeDashboard: (id: string) => void;\n setStatus: (status: JupyterStatus) => void;\n activeServerImage?: string;\n setActiveServerImage: (image: string) => void;\n resetState: () => void;\n selectedRegion?: string;\n setSelectedRegion: (region?: string) => void;\n notebookStatuses: NotebookStatus[];\n setNotebookStatuses: (statuses: NotebookStatus[]) => void;\n notebookStatusError?: AxiosError<ModelError>;\n setNotebookStatusError: (err?: AxiosError<ModelError>) => void;\n notebookStatusLoading: boolean;\n setNotebookStatusLoading: (loading: boolean) => void;\n popNotebook: () => JupyterNotebook | undefined;\n launchServerForJupyterNotebook: (jupyterNotebook: JupyterNotebook) => void;\n}\n\nexport enum ChannelActions {\n RESET_STATE,\n}\n\n// Channel to broadcast and sync jupyter status\nexport const tabChannel = new BroadcastChannel('JUPYTER_CHANNEL');\n\nconst useStore = createWithEqualityFn<JupyterStore>(\n (set, get) => ({\n image: undefined,\n server: undefined,\n notebook: undefined,\n lastSession: undefined,\n queuedTasks: [],\n jupyterURL: global.JUPYTERHUB_URL,\n notebookStatuses: [],\n notebookStatusLoading: false,\n activeServerImage: undefined,\n selectedRegion: undefined,\n notebookStatusError: undefined,\n dashboards: {},\n progress: 0,\n status: JupyterStatus.Unknown,\n dashboardsLoaded: {},\n setDashboardAsLoaded: (dashboardName: string) => {\n const dashboardsLoaded = get().dashboardsLoaded;\n set((state) => ({\n dashboardsLoaded: {\n ...dashboardsLoaded,\n [dashboardName]: true,\n },\n }));\n },\n popNotebook: () => {\n const notebook = get().notebook;\n set((state) => ({\n notebook: undefined,\n }));\n\n return notebook;\n },\n pushQueuedTask: (task) => {\n const queuedTasks = get().queuedTasks;\n set((state) => ({\n queuedTasks: [...queuedTasks, task],\n }));\n },\n clearQueuedTasks: () => {\n set((state) => ({\n queuedTasks: [],\n }));\n },\n getCurrentNotebookStatus: () => {\n const statuses = get().notebookStatuses;\n const selectedRegion = get().selectedRegion;\n\n if (!statuses.length) {\n return undefined;\n }\n if (statuses.length === 1) {\n return statuses[0];\n } else if (statuses.length && selectedRegion) {\n return statuses.find((v) => v.region === selectedRegion);\n }\n },\n setNotebookStatuses: (statuses) => {\n set((state) => ({\n notebookStatuses: statuses,\n }));\n },\n setNotebookStatusError: (err) => {\n set((state) => ({\n notebookStatusError: err,\n }));\n },\n setNotebookStatusLoading: (loading) => {\n set((state) => ({\n notebookStatusLoading: loading,\n }));\n },\n setActiveServerImage: (image) => {\n if (image !== get().activeServerImage) {\n set((state) => ({\n activeServerImage: image,\n }));\n }\n },\n addDashboard: (n: JupyterNotebook) => {\n const id = n?.arrayId;\n set((state) => ({\n dashboards: {\n ...state.dashboards,\n [id]: n,\n },\n }));\n },\n removeDashboard: (id: string) => {\n const dashboards = get().dashboards;\n const dashboardName = dashboards[id]?.arrayName;\n const dashboardsWithoutId = dissoc(id, dashboards);\n set((state) => ({\n dashboards: dashboardsWithoutId,\n }));\n\n if (dashboardName) {\n // Since we remove it, we reset state that dashboard as loaded.\n const dashboardsLoaded = get().dashboardsLoaded;\n set((state) => ({\n dashboardsLoaded: {\n ...dashboardsLoaded,\n [dashboardName]: false,\n },\n }));\n }\n },\n resetState: () => {\n set((state) => ({\n dashboards: {},\n notebookStatusLoading: false,\n notebookStatusError: undefined,\n notebookStatuses: [],\n notebook: undefined,\n image: undefined,\n server: undefined,\n activeServerImage: undefined,\n activeRegions: [],\n selectedRegion: undefined,\n progress: 0,\n }));\n },\n setNotebook: (n?: JupyterNotebook) => {\n set((state) => ({\n notebook: n,\n }));\n },\n setLaunchingProgress: (progress: number) => {\n set((state) => ({\n progress,\n status: JupyterStatus.Launching,\n }));\n },\n setStatus: (status) => {\n set((state) => ({\n status,\n }));\n },\n setIdle: () => {\n set((state) => ({\n status: JupyterStatus.Idle,\n progress: 0,\n }));\n },\n shutDownJupyterNotebook: (region?: string) => {\n const selectedRegion = get().selectedRegion;\n const activeRegions = activeRegionsSelector(get());\n\n tabChannel.postMessage({\n action: ChannelActions.RESET_STATE,\n payload: {\n region: region || selectedRegion,\n activeRegions,\n },\n });\n set((state) => ({\n status: JupyterStatus.ShuttingDown,\n server: undefined,\n image: undefined,\n notebook: undefined,\n selectedRegion: undefined,\n dashboards: {},\n progress: 0,\n }));\n },\n setSelectedRegion: (region?: string) => {\n set((state) => ({\n jupyterURL: getJupyterURL(region),\n selectedRegion: region,\n }));\n },\n getDashboardURL: (id: string) => {\n const dashboards = get().dashboards;\n const dashboard = dashboards[id];\n if (!dashboard) {\n return appsLinks.server();\n }\n\n return appsLinks.server({\n ...dashboard,\n dashboard: true,\n });\n },\n getNotebookURL: () => {\n const notebook = get().notebook;\n if (!notebook) {\n return appsLinks.server();\n }\n\n return appsLinks.server(notebook);\n },\n launchServerForJupyterNotebook: async (jupyterNotebook) => {\n const canLaunch = get().status === JupyterStatus.Idle;\n if (!canLaunch) {\n return;\n }\n const response = await ArrayApi_getArrayInfo({\n namespace: jupyterNotebook.namespace,\n array: jupyterNotebook.arrayId,\n });\n\n const fileProperties = response.data.file_properties;\n if (fileProperties?.image && fileProperties?.size) {\n get().launchNotebookServer(\n fileProperties?.image as NotebookType,\n fileProperties?.size as NotebookSize\n );\n }\n },\n launchNotebookServer: (image: NotebookType, server: NotebookSize) => {\n const selectedRegion = get().selectedRegion;\n\n set((state: JupyterStore) => ({\n image,\n server,\n lastSession: {\n image,\n server,\n region: selectedRegion,\n },\n }));\n },\n }),\n shallow\n);\n\nexport default useStore;\n\nexport const resetJupyterStoreFromNonReactHook = () => {\n useStore.setState({ status: JupyterStatus.Unknown });\n};\n\nexport const activeRegionsSelector = (state: JupyterStore) => {\n const { notebookStatuses } = state;\n\n const regions = notebookStatuses\n .filter((s) => s.pod_status === PodStatus.RUNNING)\n .map((v) => v.region)\n .filter((region) => !!region) as string[];\n return regions;\n};\n\nexport const notebookStatusSelector = (state: JupyterStore) => {\n const { notebookStatuses, selectedRegion } = state;\n\n if (!notebookStatuses.length) {\n return undefined;\n }\n if (notebookStatuses.length === 1) {\n return notebookStatuses[0];\n } else if (notebookStatuses.length && selectedRegion) {\n return notebookStatuses.find((v) => v.region === selectedRegion);\n }\n};\n\nexport const userHasNoCreditsSelector = (state: JupyterStore) => {\n const { notebookStatusError: error, notebookStatusLoading } = state;\n\n if (notebookStatusLoading || !error) {\n return false;\n }\n\n return error && isAxiosError(error) && error.response?.status === 402;\n};\n\ntabChannel.onmessage = (\n ev: MessageEvent<{\n action: ChannelActions;\n payload: { region?: string; activeRegions: string[] };\n }>\n): void => {\n if (ev.data.action === ChannelActions.RESET_STATE) {\n const { payload } = ev.data;\n const { activeRegions, region: regionShuttingDown } = payload;\n\n if (regionShuttingDown !== useStore.getState().selectedRegion) {\n return;\n }\n\n if (activeRegions.length === 1) {\n useStore.getState().resetState();\n useStore.getState().setStatus(JupyterStatus.ShuttingDown);\n } else if (activeRegions.length === 2) {\n // Since we shut down active region we need to switch to the other one\n const newRegion = activeRegions.find(\n (region) => region !== regionShuttingDown\n );\n\n useStore.getState().setSelectedRegion(newRegion);\n } else {\n useStore.getState().setSelectedRegion(undefined);\n }\n }\n};\n\n(window as any).jupyter = useStore.getState;\n","import JupyterStore from './JupyterStore';\n\nexport * from './JupyterStore';\nexport default JupyterStore;\n","/**\n * This file contains the modal context & the ModalProvider component\n * ModalProvider provides all methods needed in order to use modals inside the app i.e. pushModal(), popModal(), flushModals()\n *\n * In order to add a new modal into the app, you must create a new component and extend the <ModalDialog /> component,\n * Then lazy import the new modal in this file and add it to the `availableModals`.\n */\nimport { createWithEqualityFn } from 'zustand/traditional';\nimport { shallow } from 'zustand/shallow';\nimport { ModalCropImageParams } from 'components/Modals/ModalCropImage';\nimport { ModalConfirmParams } from 'components/Modals/ModalConfirm';\nimport { ModalCreditCardParams } from 'components/Modals/ModalCreditCard';\nimport { ModalAPITokenParams } from 'components/Modals/ModalAPIToken';\nimport { ModalInvoiceParams } from 'components/Modals/ModalInvoice';\nimport { ModalRenameOrganizationParams } from 'components/Modals/ModalRenameOrganization';\nimport { ModalRegisterArrayParams } from 'components/Modals/ModalRegisterArray';\nimport { ModalRenameArrayParams } from 'components/Modals/ModalRenameArray';\nimport { ModalShareArrayParams } from 'components/Modals/ModalShareArray';\nimport { ModalInviteMemberToOrganizationParams } from 'components/Modals/ModalInviteMemberToOrganization';\nimport { ModalAddLicenseParams } from 'components/Modals/ModalAddLicense';\nimport { ModalAddNotebookParams } from 'components/Modals/ModalAddNotebook';\nimport { ModalTextParams } from 'components/Modals/ModalText';\nimport { ModalChangeCloudCredentialsParams } from 'components/Modals/ModalChangeCloudCredentials';\nimport { ModalChangeGroupCloudCredentialsParams } from 'components/Modals/ModalChangeGroupCloudCredentials';\nimport { ModalPublicShareArrayParams } from 'components/Modals/ModalPublicShareArray';\nimport { ModalMarkArrayAsReadOnlyParams } from 'components/Modals/ModalMarkArrayAsReadOnly';\nimport { ModalAddAssetsToGroupParams } from '../../components/Modals/ModalAddAssetsToGroup';\nimport { ModalCreateGroupParams } from '../../components/Modals/ModalCreateGroup';\nimport { ModalRegisterGroupParams } from '../../components/Modals/ModalRegisterGroup';\nimport { ModalRenameGroupParams } from '../../components/Modals/ModalRenameGroup';\nimport { ModalRemoveGroupParams } from '../../components/Modals/ModalRemoveGroup';\nimport { ModalShareGroupParams } from '../../components/Modals/ModalShareGroup';\nimport { ModalPublicShareGroupParams } from '../../components/Modals/ModalPublicShareGroup';\nimport { ModalSelectGroupParams } from '../../components/Modals/ModalSelectGroup';\nimport { availableModals } from 'containers/ModalContainer';\nimport { ModalSelectFileParams } from 'components/Modals/ModalSelectFile';\nimport { ModalUploadFileParams } from 'components/Modals/ModalUploadFile';\nimport { ModalIngestFileParams } from 'components/Modals/ModalIngestFile';\nimport { ModalSSODomainSetupParams } from 'components/Modals/ModalSSODomainSetup';\nimport { ModalCopyNotebookParams } from 'components/Modals/ModalCopyNotebook';\nimport { ModalCopyUDFParams } from 'components/Modals/ModalCopyUDF';\nimport { ModalUploadNotebookParams } from 'components/Modals/ModalUploadNotebook';\nimport { ModalCreateNotebookParams } from 'components/Modals/ModalCreateNotebook';\nimport { ModalAddGroupParams } from 'components/Modals/ModalAddGroup';\nimport { ModalAddAssetParams } from 'components/Modals/ModalAddAsset';\nimport { ModalChangeUsernameParams } from 'components/Modals/ModalChangeUsername';\nimport { ModalSelectCloudCredentialsProviderParams } from 'components/Modals/ModalSelectCloudCredentialsProvider';\nimport { ModalAWSCredentialsParams } from 'components/Modals/ModalAWSCredentials';\nimport { ModalSelectAWSCredentialsFormatParams } from 'components/Modals/ModalSelectAWSCredentialsFormat';\nimport { ModalARNAWSCredentialsSetupParams } from 'components/Modals/ModalARNAWSCredentialsSetup';\nimport { ModalARNAWSCredentialsRoleInfoParams } from 'components/Modals/ModalARNAWSCredentialsRoleInfo';\nimport { ModalARNAWSCredentialsParams } from 'components/Modals/ModalARNAWSCredentials';\nimport { ModalAzureCredentialsParams } from 'components/Modals/ModalAzureCredentials';\nimport { ModalApplyRootPathToStoragePathsParams } from 'components/Modals/ModalApplyRootPathToStoragePaths';\nimport { ModalAddSSOConnectionParams } from 'components/Modals/ModalAddSSOConnection';\nimport { ModalProfileSetupParams } from 'components/ModalsV2/Onboarding/ModalProfileSetup';\nimport { ModalLaunchServerParams } from 'components/Modals/ModalLaunchServer';\nimport { ModalConnectStorageIntroParams } from 'components/ModalsV2/Onboarding/ModalConnectStorageIntro';\nimport { ModalConnectStorageParams } from 'components/ModalsV2/Onboarding/ModalConnectStorage';\nimport { ModalAddAssetIntroParams } from 'components/ModalsV2/Onboarding/ModalAddAssetIntro';\nimport { ModalSkipOnboardingParams } from 'components/ModalsV2/Onboarding/ModalSkipOnboarding';\nimport { ModalCreateOrganizationParams } from 'components/Modals/ModalCreateOrganization/ModalCreateOrganization';\nimport { ModalWelcomeToOrganizationParams } from 'components/ModalsV2/Onboarding/ModalWelcomeToOrganization';\nimport { ModalRemoveAssetParams } from 'components/Modals/ModalRemoveAsset';\nimport { ModalSelectRegionParams } from 'components/Modals/ModalSelectRegion';\nimport { ModalAddCodeAssetsParams } from 'components/Modals/ModalAddCodeAssets';\nimport { ModalAddDataAssetsParams } from 'components/Modals/ModalAddDataAssets';\nimport { ModalAddFileParams } from 'components/Modals/ModalAddFile';\nimport { ModalIngestVCFParams } from 'components/Modals/ModalIngestVCF';\nimport { ModalImportVerticalAssetParams } from 'components/Modals/ModalImportVerticalAsset/ModalImportVerticalAsset';\nimport { ModalSelectAzureCredentialsFormatParams } from 'components/Modals/ModalSelectAzureCredentialsFormat';\nimport { ModalAzureTokenCredentialsParams } from 'components/Modals/ModalAzureTokenCredentials';\nimport { ModalSelectGCPCredentialsFormatParams } from 'components/Modals/ModalSelectGCPCredentialsFormat';\nimport { ModalGCPKeyIDCredentialsParams } from 'components/Modals/ModalGCPKeyIDCredentials';\nimport { ModalGCPServiceAccountCredentialsParams } from 'components/Modals/ModalGCPServiceAccountCredentials';\nimport { ModalIngestBiomedicalImagingParams } from 'components/Modals/ModalIngestBiomedicalImaging';\nimport { ModalLaunchAppParams } from 'components/Modals/ModalLaunchApp';\nimport { ModalSelectAssetToLaunchParams } from 'components/Modals/ModalSelectAssetToLaunch';\nimport { ModalSelectRegionAndServerProfileParams } from 'components/Modals/ModalSelectRegionAndServerProfile';\nimport { ModalIngestPointCloudParams } from 'components/Modals/ModalIngestPointCloud';\nimport { ModalServerMismatchParams } from 'components/Modals/ModalServerMismatch';\nimport { ModalIngestSOMAParams } from 'components/Modals/ModalIngestSOMA';\nimport { ModalBulkRemoveAssetsParams } from 'components/ModalsV2/ModalBulkRemoveAssets';\nimport { ModalBulkChangeAssetCredentialsParams } from 'components/ModalsV2/ModalBulkChangeAssetCredentials';\nimport { ModalUpdateAssetMetadataParams } from 'components/ModalsV2/ModalUpdateAssetMetadata';\nimport { ModalInfoParams } from 'components/ModalsV2/ModalInfo';\n\nexport enum Modals {\n ModalConfirm = 'ModalConfirm',\n ModalAddCodeAssets = 'ModalAddCodeAssets',\n ModalServerMismatch = 'ModalServerMismatch',\n ModalProductOverview = 'ModalProductOverview',\n ModalRootPath = 'ModalRootPath',\n ModalCloudStorage = 'ModalCloudStorage',\n ModalClaimCredits = 'ModalClaimCredits',\n ModalAddBiomedicalImaging = 'ModalAddBiomedicalImaging',\n ModalSelectRegionAndServerProfile = 'ModalSelectRegionAndServerProfile',\n ModalSelectAzureCredentialsFormat = 'ModalSelectAzureCredentialsFormat',\n ModalSelectGCPCredentialsFormat = 'ModalSelectGCPCredentialsFormat',\n ModalGCPServiceAccountCredentials = 'ModalGCPServiceAccountCredentials',\n ModalGCPKeyIDCredentials = 'ModalGCPKeyIDCredentials',\n ModalImportVerticalAsset = 'ModalImportVerticalAsset',\n ModalAzureTokenCredentials = 'ModalAzureTokenCredentials',\n ModalAddDataAssets = 'ModalAddDataAssets',\n ModalAddSOMA = 'ModalAddSOMA',\n ModalAddPointCloud = 'ModalAddPointCloud',\n ModalAddGeometries = 'ModalAddGeometries',\n ModalAddRaster = 'ModalAddRaster',\n ModalSelectRegion = 'ModalSelectRegion',\n ModalLaunchServer = 'ModalLaunchServer',\n ModalIngestVCF = 'ModalIngestVCF',\n ModalIngestSOMA = 'ModalIngestSOMA',\n ModalAddVCF = 'ModalAddVCF',\n ModalRenameArray = 'ModalRenameArray',\n ModalAddFile = 'ModalAddFile',\n ModalChangeCloudCredentials = 'ModalChangeCloudCredentials',\n ModalChangeGroupCloudCredentials = 'ModalChangeGroupCloudCredentials',\n ModalCropImage = 'ModalCropImage',\n ModalCreditCard = 'ModalCreditCard',\n ModalShareArray = 'ModalShareArray',\n ModalAddLicense = 'ModalAddLicense',\n ModalSSODomainSetup = 'ModalSSODomainSetup',\n ModalText = 'ModalText',\n ModalRegisterArray = 'ModalRegisterArray',\n ModalAddNotebook = 'ModalAddNotebook',\n ModalAPIToken = 'ModalAPIToken',\n ModalInvoice = 'ModalInvoice',\n ModalRenameOrganization = 'ModalRenameOrganization',\n ModalUserOnboarding = 'ModalUserOnboarding',\n ModalInviteMemberToOrganization = 'ModalInviteMemberToOrganization',\n ModalAddArrayPricing = 'ModalAddArrayPricing',\n ModalPublicShareArray = 'ModalPublicShareArray',\n ModalMarkArrayAsReadOnly = 'ModalMarkArrayAsReadOnly',\n ModalRequestCredits = 'ModalRequestCredits',\n ModalAddAssetsToGroup = 'ModalAddAssetsToGroup',\n ModalCreateGroup = 'ModalCreateGroup',\n ModalRegisterGroup = 'ModalRegisterGroup',\n ModalRenameGroup = 'ModalRenameGroup',\n ModalShareGroup = 'ModalShareGroup',\n ModalSelectGroup = 'ModalSelectGroup',\n ModalPublicShareGroup = 'ModalPublicShareGroup',\n ModalSelectFile = 'ModalSelectFile',\n ModalUploadFile = 'ModalUploadFile',\n ModalCopyNotebook = 'ModalCopyNotebook',\n ModalUploadNotebook = 'ModalUploadNotebook',\n ModalCreateNotebook = 'ModalCreateNotebook',\n ModalCopyUDF = 'ModalCopyUDF',\n ModalAddGroup = 'ModalAddGroup',\n ModalRemoveGroup = 'ModalRemoveGroup',\n ModalAddAsset = 'ModalAddAsset',\n ModalChangeUsername = 'ModalChangeUsername',\n ModalSelectCloudCredentialsProvider = 'ModalSelectCloudCredentialsProvider',\n ModalAWSCredentials = 'ModalAWSCredentials',\n ModalSelectAWSCredentialsFormat = 'ModalSelectAWSCredentialsFormat',\n ModalARNAWSCredentialsSetup = 'ModalARNAWSCredentialsSetup',\n ModalARNAWSCredentials = 'ModalARNAWSCredentials',\n ModalARNAWSCredentialsRoleInfo = 'ModalARNAWSCredentialsRoleInfo',\n ModalAzureCredentials = 'ModalAzureCredentials',\n ModalApplyRootPathToStoragePaths = 'ModalApplyRootPathToStoragePaths',\n ModalAddSSOConnection = 'ModalAddSSOConnection',\n ModalWelcome = 'ModalWelcome',\n ModalProfileSetup = 'ModalProfileSetup',\n ModalFinishUserOnboarding = 'ModalFinishUserOnboarding',\n ModalConnectStorageIntro = 'ModalConnectStorageIntro',\n ModalConnectStorage = 'ModalConnectStorage',\n ModalAddAssetIntro = 'ModalAddAssetIntro',\n ModalSkipOnboarding = 'ModalSkipOnboarding',\n ModalCreateOrganization = 'ModalCreateOrganization',\n ModalWelcomeToOrganization = 'ModalWelcomeToOrganization',\n ModalFinishOrganizationOnboarding = 'ModalFinishOrganizationOnboarding',\n ModalRemoveAsset = 'ModalRemoveAsset',\n ModalIngestBiomedicalImaging = 'ModalIngestBiomedicalImaging',\n ModalIngestFile = 'ModalIngestFile',\n ModalLaunchApp = 'ModalLaunchApp',\n ModalSelectAssetToLaunch = 'ModalSelectAssetToLaunch',\n ModalIngestPointCloud = 'ModalIngestPointCloud',\n ModalBulkRemoveAssets = 'ModalBulkRemoveAssets',\n ModalErrorBoundary = 'ModalErrorBoundary',\n ModalBulkChangeAssetCredentials = 'ModalBulkChangeAssetCredentials',\n ModalUpdateAssetMetadata = 'ModalUpdateAssetMetadata',\n ModalInfo = 'ModalInfo',\n}\n\n/**\n * Concatenate Modal params\n */\ntype ModalParams =\n | ModalCropImageParams\n | ModalSelectRegionParams\n | ModalCopyNotebookParams\n | ModalCopyUDFParams\n | ModalLaunchServerParams\n | ModalTextParams\n | ModalConfirmParams\n | ModalCreditCardParams\n | ModalAPITokenParams\n | ModalInvoiceParams\n | ModalUploadNotebookParams\n | ModalIngestSOMAParams\n | ModalCreateNotebookParams\n | ModalIngestVCFParams\n | ModalAddNotebookParams\n | ModalRenameOrganizationParams\n | ModalGCPKeyIDCredentialsParams\n | ModalRegisterArrayParams\n | ModalRenameArrayParams\n | ModalSelectRegionAndServerProfileParams\n | ModalShareArrayParams\n | ModalSSODomainSetupParams\n | ModalAddFileParams\n | ModalUploadFileParams\n | ModalInviteMemberToOrganizationParams\n | ModalAddLicenseParams\n | ModalChangeCloudCredentialsParams\n | ModalChangeGroupCloudCredentialsParams\n | ModalPublicShareArrayParams\n | ModalMarkArrayAsReadOnlyParams\n | ModalCreateGroupParams\n | ModalRegisterGroupParams\n | ModalRenameGroupParams\n | ModalGCPServiceAccountCredentialsParams\n | ModalAddAssetsToGroupParams\n | ModalShareGroupParams\n | ModalPublicShareGroupParams\n | ModalSelectFileParams\n | ModalSelectGroupParams\n | ModalAddGroupParams\n | ModalAddAssetParams\n | ModalChangeUsernameParams\n | ModalSelectCloudCredentialsProviderParams\n | ModalAWSCredentialsParams\n | ModalARNAWSCredentialsParams\n | ModalSelectAzureCredentialsFormatParams\n | ModalARNAWSCredentialsSetupParams\n | ModalServerMismatchParams\n | ModalARNAWSCredentialsRoleInfoParams\n | ModalAzureCredentialsParams\n | ModalAzureTokenCredentialsParams\n | ModalApplyRootPathToStoragePathsParams\n | ModalAddSSOConnectionParams\n | ModalProfileSetupParams\n | ModalConnectStorageIntroParams\n | ModalConnectStorageParams\n | ModalAddAssetIntroParams\n | ModalSkipOnboardingParams\n | ModalCreateOrganizationParams\n | ModalWelcomeToOrganizationParams\n | ModalRemoveAssetParams\n | ModalIngestBiomedicalImagingParams\n | ModalLaunchAppParams\n | ModalSelectAssetToLaunchParams\n | ModalBulkRemoveAssetsParams\n | ModalBulkChangeAssetCredentialsParams\n | ModalUpdateAssetMetadataParams\n | ModalInfoParams;\n\nexport type ModalType = ModalParams & {\n name: Modals;\n // Optionally make a popup non-dismissable with Escape key\n noDismissOnEscape?: boolean;\n};\nexport interface ModalState {\n modals: ModalType[];\n pushModal: (name: Modals, modal: ModalParams) => void;\n flushModals: () => void;\n popModal: () => void;\n goToModal: (name: Modals) => void;\n\n // Modals\n showCropImageModal: (params: ModalCropImageParams) => void;\n showServerMismatchModal: (params: ModalServerMismatchParams) => void;\n showImportVerticalModal: (params: ModalImportVerticalAssetParams) => void;\n showCopyNotebookModal: (params: ModalCopyNotebookParams) => void;\n showAddCodeAssetsModal: (params: ModalAddCodeAssetsParams) => void;\n showAddFileModal: (params: ModalAddFileParams) => void;\n showCopyUDFModal: (params: ModalCopyUDFParams) => void;\n showSelectFileModal: (params: ModalSelectFileParams) => void;\n showConfirmModal: (params: ModalConfirmParams) => void;\n showCreditCardModal: (params: ModalCreditCardParams) => void;\n showIngestVCFModal: (params: ModalIngestVCFParams) => void;\n showUploadNotebookModal: (params: ModalUploadNotebookParams) => void;\n showClaimCreditsModal: () => void;\n showCreateNotebookModal: (params: ModalCreateNotebookParams) => void;\n showAddDataAssetsModal: (params: ModalAddDataAssetsParams) => void;\n showLicenseModal: (params: ModalAddLicenseParams) => void;\n showSelectRegionModal: (params: ModalSelectRegionParams) => void;\n showTextModal: (params: ModalTextParams) => void;\n showAPITokenModal: (params: ModalAPITokenParams) => void;\n showInvoiceModal: (params: ModalInvoiceParams) => void;\n showUploadFileModal: (params: ModalUploadFileParams) => void;\n showOrganizationRenameModal: (params: ModalRenameOrganizationParams) => void;\n showRegisterArrayModal: (params: ModalRegisterArrayParams) => void;\n showArrayRenameModal: (params: ModalRenameArrayParams) => void;\n showShareArrayModal: (params: ModalShareArrayParams) => void;\n showInviteMemberToOrganizationModal: (\n params: ModalInviteMemberToOrganizationParams\n ) => void;\n showAddNotebookModal: (params: ModalAddNotebookParams) => void;\n showChangeCloudCredentialsModal: (\n params: ModalChangeCloudCredentialsParams\n ) => void;\n showChangeGroupCloudCredentialsModal: (\n params: ModalChangeGroupCloudCredentialsParams\n ) => void;\n showPublicShareArrayModal: (params: ModalPublicShareArrayParams) => void;\n showMarkArrayAsReadOnlyModal: (\n params: ModalMarkArrayAsReadOnlyParams\n ) => void;\n showRequestCreditsModal: () => void;\n showAddAssetsToGroupModal: (params: ModalAddAssetsToGroupParams) => void;\n showSelectRegionAndServerProfileModal: (\n params: ModalSelectRegionAndServerProfileParams\n ) => void;\n showCreateGroupModal: (params: ModalCreateGroupParams) => void;\n showRegisterGroupModal: (params: ModalRegisterGroupParams) => void;\n showRenameGroupModal: (params: ModalRenameGroupParams) => void;\n showRemoveGroupModal: (params: ModalRemoveGroupParams) => void;\n showShareGroupModal: (params: ModalShareGroupParams) => void;\n showPublicShareGroupModal: (params: ModalPublicShareGroupParams) => void;\n showSelectGroupModal: (params: ModalSelectGroupParams) => void;\n showAddGroupModal: (params: ModalAddGroupParams) => void;\n showAddAssetModal: (params: ModalAddAssetParams) => void;\n showChangeUsernameModal: (params: ModalChangeUsernameParams) => void;\n showSelectCloudCredentialsProviderModal: (\n params: ModalSelectCloudCredentialsProviderParams\n ) => void;\n showAzureCredentialsModal: (params: ModalAzureCredentialsParams) => void;\n showAzureTokenCredentialsModal: (\n params: ModalAzureTokenCredentialsParams\n ) => void;\n showAWSCredentialsModal: (params: ModalAWSCredentialsParams) => void;\n showSelectAWSCredentialsFormatModal: (\n params: ModalSelectAWSCredentialsFormatParams\n ) => void;\n showSelectGCPCredentialsFormatModal: (\n params: ModalSelectGCPCredentialsFormatParams\n ) => void;\n showSelectGCPServiceAccountModal: (\n params: ModalGCPServiceAccountCredentialsParams\n ) => void;\n showSelectAzureCredentialsFormatModal: (\n params: ModalSelectAzureCredentialsFormatParams\n ) => void;\n showARNAWSCredentialsSetupModal: (\n params: ModalARNAWSCredentialsSetupParams\n ) => void;\n showARNAWSCredentialsRoleInfoModal: (\n params: ModalARNAWSCredentialsRoleInfoParams\n ) => void;\n showSSoDomainSetupModal: (params: ModalSSODomainSetupParams) => void;\n showARNAWSCredentialsModal: (params: ModalARNAWSCredentialsParams) => void;\n showGCPKeyIDCredentialsModal: (\n params: ModalGCPKeyIDCredentialsParams\n ) => void;\n showApplyRootPathToStoragePathsModal: (\n params: ModalApplyRootPathToStoragePathsParams\n ) => void;\n showAddSSOConnectionModal: (params: ModalAddSSOConnectionParams) => void;\n showLaunchServerModal: (params: ModalLaunchServerParams) => void;\n showWelcomeModal: () => void;\n showProfileSetupModal: (params: ModalProfileSetupParams) => void;\n showFinishUserOnboardingModal: () => void;\n showConnectStorageIntroModal: (\n params: ModalConnectStorageIntroParams\n ) => void;\n showConnectStorageModal: (params: ModalConnectStorageParams) => void;\n showAddAssetIntroModal: (params: ModalAddAssetIntroParams) => void;\n showSkipOnboardingModal: (params: ModalSkipOnboardingParams) => void;\n showCreateOrganizationModal: (params: ModalCreateOrganizationParams) => void;\n showWelcomeToOrganizationModal: (\n params: ModalWelcomeToOrganizationParams\n ) => void;\n showFinishOrganizationOnboardingModal: () => void;\n showRemoveAssetModal: (params: ModalRemoveAssetParams) => void;\n showIngestBiomedicalImagingModal: (\n params: ModalIngestBiomedicalImagingParams\n ) => void;\n showIngestSOMAModal: (params: ModalIngestSOMAParams) => void;\n showIngestFileModal: (params: ModalIngestFileParams) => void;\n showLaunchAppModal: (params: ModalLaunchAppParams) => void;\n showSelectAssetToLaunchModal: (\n params: ModalSelectAssetToLaunchParams\n ) => void;\n showIngestPointCloudModal: (params: ModalIngestPointCloudParams) => void;\n showUserOnboardingModal: (params: {}) => void;\n showBulkRemoveAssetsModal: (params: ModalBulkRemoveAssetsParams) => void;\n showBulkChangeAssetCredentialsModal: (\n params: ModalBulkChangeAssetCredentialsParams\n ) => void;\n showUpdateAssetMetadataModal: (\n params: ModalUpdateAssetMetadataParams\n ) => void;\n showInfoModal: (params: ModalInfoParams) => void;\n}\n\nconst useStore = createWithEqualityFn<ModalState>(\n (set, get) => ({\n modals: [],\n pushModal: (name: Modals, modal: ModalParams) => {\n const activeModals = get().modals;\n if (!availableModals[name]) {\n // eslint-disable-next-line\n console.warn(\n `Tried to push a non existing modal \\`${name}\\` into the Modal stack.`\n );\n return;\n }\n\n if (activeModals.some((m: ModalType) => m.name === name)) {\n // Prevent duplicates\n return;\n }\n\n const modalWithName = { name, ...modal };\n\n return set((state: ModalState) => ({\n modals: [...state.modals, modalWithName],\n }));\n },\n\n popModal: () =>\n set((state) => ({\n modals: state.modals.slice(0, -1),\n })),\n\n flushModals: () =>\n set(() => ({\n modals: [],\n })),\n\n goToModal: (modalName: Modals) =>\n set((state) => {\n const modalIndex = state.modals.findIndex((m) => m.name === modalName);\n return {\n modals: state.modals.slice(0, modalIndex + 1),\n };\n }),\n\n showServerMismatchModal: (params: ModalServerMismatchParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalServerMismatch, params);\n },\n\n showUserOnboardingModal: (params: ModalServerMismatchParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalUserOnboarding, {\n ...params,\n noDismissOnEscape: true,\n });\n },\n\n showConfirmModal: (params: ModalConfirmParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalConfirm, params);\n },\n\n showClaimCreditsModal: () => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalClaimCredits, {});\n },\n\n showImportVerticalModal: (params: ModalImportVerticalAssetParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalImportVerticalAsset, params);\n },\n\n showAddDataAssetsModal: (params: ModalAddDataAssetsParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddDataAssets, params);\n },\n\n showIngestVCFModal: (params: ModalIngestVCFParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalIngestVCF, params);\n },\n\n showIngestSOMAModal: (params: ModalIngestSOMAParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalIngestSOMA, params);\n },\n\n showAddCodeAssetsModal: (params: ModalAddAssetParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddCodeAssets, params);\n },\n\n showSelectRegionAndServerProfileModal: (\n params: ModalSelectRegionAndServerProfileParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectRegionAndServerProfile, params);\n },\n\n showAddFileModal: (params: ModalAddFileParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddFile, params);\n },\n\n showArrayRenameModal: (params: ModalRenameArrayParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRenameArray, params);\n },\n\n showChangeCloudCredentialsModal: (\n params: ModalChangeCloudCredentialsParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalChangeCloudCredentials, params);\n },\n\n showChangeGroupCloudCredentialsModal: (\n params: ModalChangeGroupCloudCredentialsParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalChangeGroupCloudCredentials, params);\n },\n\n showSelectRegionModal: (params: ModalSelectRegionParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectRegion, params);\n },\n\n showCropImageModal: (params: ModalCropImageParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalCropImage, params);\n },\n\n showCreditCardModal: (params: ModalCreditCardParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalCreditCard, params);\n },\n\n showShareArrayModal: (params: ModalShareArrayParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalShareArray, params);\n },\n\n showLicenseModal: (params: ModalAddLicenseParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddLicense, params);\n },\n\n showTextModal: (params: ModalTextParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalText, params);\n },\n\n showRegisterArrayModal: (params: ModalRegisterArrayParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRegisterArray, params);\n },\n\n showAddNotebookModal: (params: ModalAddNotebookParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddNotebook, params);\n },\n\n showAPITokenModal: (params: ModalAPITokenParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAPIToken, params);\n },\n\n showInvoiceModal: (params: ModalInvoiceParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalInvoice, params);\n },\n\n showOrganizationRenameModal: (params: ModalRenameOrganizationParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRenameOrganization, params);\n },\n\n showInviteMemberToOrganizationModal: (\n params: ModalInviteMemberToOrganizationParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalInviteMemberToOrganization, params);\n },\n\n showPublicShareArrayModal: (params: ModalPublicShareArrayParams) => {\n const pushModal = get().pushModal;\n pushModal(Modals.ModalPublicShareArray, params);\n },\n\n showMarkArrayAsReadOnlyModal: (params: ModalMarkArrayAsReadOnlyParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalMarkArrayAsReadOnly, params);\n },\n\n showRequestCreditsModal: () => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRequestCredits, {});\n },\n\n showAddAssetsToGroupModal: (params: ModalAddAssetsToGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddAssetsToGroup, params);\n },\n\n showCreateGroupModal: (params: ModalCreateGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalCreateGroup, params);\n },\n\n showRegisterGroupModal: (params: ModalRegisterGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRegisterGroup, params);\n },\n\n showRenameGroupModal: (params: ModalRenameGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRenameGroup, params);\n },\n\n showShareGroupModal: (params: ModalShareGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalShareGroup, params);\n },\n\n showPublicShareGroupModal: (params: ModalPublicShareGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalPublicShareGroup, params);\n },\n\n showSelectGroupModal: (params: ModalSelectGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectGroup, params);\n },\n\n showSelectFileModal: (params: ModalSelectFileParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectFile, params);\n },\n\n showUploadFileModal: (params: ModalUploadFileParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalUploadFile, params);\n },\n\n showCopyNotebookModal: (params: ModalCopyNotebookParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalCopyNotebook, params);\n },\n\n showUploadNotebookModal: (params: ModalUploadNotebookParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalUploadNotebook, params);\n },\n\n showCreateNotebookModal: (params: ModalCreateNotebookParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalCreateNotebook, params);\n },\n\n showCopyUDFModal: (params: ModalCopyUDFParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalCopyUDF, params);\n },\n\n showAddGroupModal: (params: ModalAddGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddGroup, params);\n },\n showRemoveGroupModal: (params: ModalRemoveGroupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRemoveGroup, params);\n },\n showAddAssetModal: (params: ModalAddAssetParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddAsset, params);\n },\n showChangeUsernameModal: (params: ModalChangeUsernameParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalChangeUsername, params);\n },\n showSelectCloudCredentialsProviderModal: (\n params: ModalSelectCloudCredentialsProviderParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectCloudCredentialsProvider, params);\n },\n showAWSCredentialsModal: (params: ModalAWSCredentialsParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAWSCredentials, params);\n },\n showSelectAWSCredentialsFormatModal: (\n params: ModalSelectAWSCredentialsFormatParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectAWSCredentialsFormat, params);\n },\n\n showSelectGCPCredentialsFormatModal: (\n params: ModalSelectGCPCredentialsFormatParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectGCPCredentialsFormat, params);\n },\n\n showSelectGCPServiceAccountModal: (\n params: ModalGCPServiceAccountCredentialsParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalGCPServiceAccountCredentials, params);\n },\n\n showGCPKeyIDCredentialsModal: (params: ModalGCPKeyIDCredentialsParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalGCPKeyIDCredentials, params);\n },\n\n showSelectAzureCredentialsFormatModal: (\n params: ModalSelectAzureCredentialsFormatParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectAzureCredentialsFormat, params);\n },\n showARNAWSCredentialsSetupModal: (\n params: ModalARNAWSCredentialsSetupParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalARNAWSCredentialsSetup, params);\n },\n showARNAWSCredentialsModal: (params: ModalARNAWSCredentialsParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalARNAWSCredentials, params);\n },\n showARNAWSCredentialsRoleInfoModal: (\n params: ModalARNAWSCredentialsRoleInfoParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalARNAWSCredentialsRoleInfo, params);\n },\n showAzureCredentialsModal: (params: ModalAzureCredentialsParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAzureCredentials, params);\n },\n showAzureTokenCredentialsModal: (\n params: ModalAzureTokenCredentialsParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAzureTokenCredentials, params);\n },\n showApplyRootPathToStoragePathsModal: (\n params: ModalApplyRootPathToStoragePathsParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalApplyRootPathToStoragePaths, params);\n },\n showLaunchServerModal: (params: ModalLaunchServerParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalLaunchServer, params);\n },\n showAddSSOConnectionModal: (params: ModalAddSSOConnectionParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddSSOConnection, params);\n },\n showSSoDomainSetupModal: (params: ModalSSODomainSetupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSSODomainSetup, params);\n },\n showWelcomeModal: () => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalWelcome, { noDismissOnEscape: true });\n },\n\n showProfileSetupModal: (params: ModalProfileSetupParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalProfileSetup, {\n ...params,\n noDismissOnEscape: true,\n });\n },\n showFinishUserOnboardingModal: () => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalFinishUserOnboarding, {});\n },\n showConnectStorageIntroModal: (params: ModalConnectStorageIntroParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalConnectStorageIntro, params);\n },\n showConnectStorageModal: (params: ModalConnectStorageParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalConnectStorage, params);\n },\n showAddAssetIntroModal: (params: ModalAddAssetIntroParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalAddAssetIntro, params);\n },\n showSkipOnboardingModal: (params: ModalSkipOnboardingParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSkipOnboarding, params);\n },\n showCreateOrganizationModal: (params: ModalCreateOrganizationParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalCreateOrganization, params);\n },\n showWelcomeToOrganizationModal: (\n params: ModalWelcomeToOrganizationParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalWelcomeToOrganization, params);\n },\n showFinishOrganizationOnboardingModal: () => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalFinishOrganizationOnboarding, {});\n },\n showRemoveAssetModal: (params: ModalRemoveAssetParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalRemoveAsset, params);\n },\n showIngestBiomedicalImagingModal: (\n params: ModalIngestBiomedicalImagingParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalIngestBiomedicalImaging, params);\n },\n showIngestFileModal: (params: ModalIngestFileParams) => {\n const pushModal = get().pushModal;\n pushModal(Modals.ModalIngestFile, params);\n },\n showLaunchAppModal: (params: ModalLaunchAppParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalLaunchApp, params);\n },\n showSelectAssetToLaunchModal: (params: ModalSelectAssetToLaunchParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalSelectAssetToLaunch, params);\n },\n showIngestPointCloudModal: (params: ModalIngestPointCloudParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalIngestPointCloud, params);\n },\n showBulkRemoveAssetsModal: (params: ModalBulkRemoveAssetsParams) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalBulkRemoveAssets, params);\n },\n showBulkChangeAssetCredentialsModal: (\n params: ModalBulkChangeAssetCredentialsParams\n ) => {\n const pushModal = get().pushModal;\n\n pushModal(Modals.ModalBulkChangeAssetCredentials, params);\n },\n showUpdateAssetMetadataModal: (params: ModalUpdateAssetMetadataParams) => {\n const pushModal = get().pushModal;\n pushModal(Modals.ModalUpdateAssetMetadata, params);\n },\n showInfoModal: (params: ModalInfoParams) => {\n const pushModal = get().pushModal;\n pushModal(Modals.ModalInfo, params);\n },\n }),\n shallow\n);\n\nexport default useStore;\n","import useModal from './ModalStore';\n\nexport * from './ModalStore';\n\nexport default useModal;\n","import {\n UserApi_getOnboardingItems,\n UserApi_getOnboardingItems$Params,\n UserApi_getOnboardingItems$Path,\n UserApi_getOnboardingItems$Response,\n} from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\nimport replacePathParams from 'utils/helpers/replacePathParams';\n\nexport const createPath = (data: UserApi_getOnboardingItems$Params): string => {\n return replacePathParams(UserApi_getOnboardingItems$Path, data);\n};\n\nconst useGetOnboardingItems: UseRequestType<\n UserApi_getOnboardingItems$Params,\n UserApi_getOnboardingItems$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<UserApi_getOnboardingItems$Response>,\n UserApi_getOnboardingItems$Params\n >(\n [createPath(queryData), queryData],\n useQueryRequest(UserApi_getOnboardingItems, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetOnboardingItems;\n","import useGetCompletedOnboardingItems from './useGetCompletedOnboardingItems';\n\nexport default useGetCompletedOnboardingItems;\nexport * from './useGetCompletedOnboardingItems';\n","import { useEffect, useRef } from 'react';\nimport eventBus, {\n EventSubscription,\n EventTypes,\n} from 'utils/helpers/eventBus';\n\nconst useEventCallback = (event: EventTypes, callback: Function): void => {\n const subscription = useRef<EventSubscription>();\n\n useEffect(() => {\n subscription.current = eventBus.on(event, (data?: any) => {\n callback(data);\n });\n return (): void => {\n subscription.current?.unsubscribe();\n };\n }, [callback, event]);\n};\n\nexport default useEventCallback;\n","import useEventCallback from './useEventCallback';\n\nexport default useEventCallback;\n","import { OnboardingItem } from 'api-client';\nimport isEnterpriseEnv from 'utils/helpers/isEnterpriseEnv';\n\nexport enum OnboardingFlow {\n Intro = 'user.intro',\n ProfileSetup = 'user.profile_setup',\n BasicTour = 'user.basic_tour',\n LaunchNotebook = 'user.launch_notebook',\n IndicateOnboardingFinish = 'user.indicate_onboarding_finish',\n OrganizationBasicTour = 'organization.basic_tour',\n IndicateOrganizationOnboardingFinish = 'organization.indicate_onboarding_finish',\n}\nexport const welcomeOnboardingItems: OnboardingItem[] = [OnboardingItem.Intro];\nexport const profileSetupOnboardingItems: OnboardingItem[] = [\n OnboardingItem.ThemeSelection,\n OnboardingItem.ProfileInfo,\n OnboardingItem.RootPath,\n OnboardingItem.CloudStorage,\n // We skip \"Claim Credits\" step for enterprise releases, since billing is disabled.\n ...(isEnterpriseEnv() ? [] : [OnboardingItem.ClaimCredits]),\n];\n\nexport const basicTourOnboardingItems: OnboardingItem[] = [\n OnboardingItem.BasicTour,\n];\nexport const launchNotebookOnboardingItems: OnboardingItem[] = [\n OnboardingItem.LaunchNotebook,\n];\nexport const indicateOnboardingFinishItems: OnboardingItem[] = [\n OnboardingItem.IndicateFinishUserOnboarding,\n];\nexport const organizationBasicTourOnboardingItems: OnboardingItem[] = [\n OnboardingItem.OrganizationBasicTour,\n];\nexport const indicateOrganizationOnboardingFinishItems: OnboardingItem[] = [\n OnboardingItem.IndicateFinishOrgOnboarding,\n];\n\nconst onboardingFlows = {\n user: {\n intro: OnboardingFlow.Intro,\n profileSetup: OnboardingFlow.ProfileSetup,\n basicTour: OnboardingFlow.BasicTour,\n launchNotebook: OnboardingFlow.LaunchNotebook,\n indicateOnboardingFinish: OnboardingFlow.IndicateOnboardingFinish,\n },\n organization: {\n basicTour: OnboardingFlow.OrganizationBasicTour,\n indicateOnboardingFinish:\n OnboardingFlow.IndicateOrganizationOnboardingFinish,\n },\n};\n\n/**\n * Helper function to get the list of onboarding items for a given flow\n *\n * @param flow the onboarding flow\n * @returns onboarding items that the given flow consists of\n */\nexport const getOnboardingItemsByFlow = (flow: OnboardingFlow) => {\n switch (flow) {\n case OnboardingFlow.Intro:\n return welcomeOnboardingItems;\n case OnboardingFlow.ProfileSetup:\n return profileSetupOnboardingItems;\n case OnboardingFlow.BasicTour:\n return basicTourOnboardingItems;\n case OnboardingFlow.LaunchNotebook:\n return launchNotebookOnboardingItems;\n case OnboardingFlow.IndicateOnboardingFinish:\n return indicateOnboardingFinishItems;\n case OnboardingFlow.OrganizationBasicTour:\n return organizationBasicTourOnboardingItems;\n case OnboardingFlow.IndicateOrganizationOnboardingFinish:\n return indicateOrganizationOnboardingFinishItems;\n default:\n return [];\n }\n};\n\nexport default onboardingFlows;\n","import onboardingFlows from './onboardingFlows';\n\nexport default onboardingFlows;\nexport * from './onboardingFlows';\n","import {\n UserApi_getOnboardingState,\n UserApi_getOnboardingState$Params,\n UserApi_getOnboardingState$Path,\n UserApi_getOnboardingState$Response,\n} from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\nimport replacePathParams from 'utils/helpers/replacePathParams';\n\nexport const createPath = (data: UserApi_getOnboardingState$Params): string => {\n return replacePathParams(UserApi_getOnboardingState$Path, data);\n};\n\nconst useGetOnboardingState: UseRequestType<\n UserApi_getOnboardingState$Params,\n UserApi_getOnboardingState$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<UserApi_getOnboardingState$Response>,\n UserApi_getOnboardingState$Params\n >(\n [createPath(queryData), queryData],\n useQueryRequest(UserApi_getOnboardingState, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetOnboardingState;\n","import useGetOnboardingState from './useGetOnboardingState';\n\nexport default useGetOnboardingState;\nexport * from './useGetOnboardingState';\n","import React, { createContext, useCallback, useContext, useMemo } from 'react';\nimport {\n OnboardingItem,\n OnboardingState,\n UserApi_getOnboardingItems$Response,\n UserApi_getOnboardingState$Response,\n} from 'api-client';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport useGetCompletedOnboardingItems from 'hooks/api/Onboarding/useGetCompletedOnboardingItems';\nimport { AxiosResponse } from 'axios';\nimport { EventTypes } from 'utils/helpers/eventBus';\nimport useEventCallback from 'hooks/useEventCallback';\nimport useAddCompletedOnboardingItems from 'hooks/api/Onboarding/useAddCompletedOnboardingItems';\nimport onboardingFlows, {\n getOnboardingItemsByFlow,\n OnboardingFlow,\n} from 'components/Onboarding/onboardingFlows';\nimport useGetOnboardingState from 'hooks/api/Onboarding/useGetOnboardingState';\nimport { useUserContext } from 'store/UserContext';\n\ninterface OnboardingContextType {\n completedOnboardingItems: OnboardingItem[];\n refetchCompletedOnboardingItems: () => Promise<\n AxiosResponse<UserApi_getOnboardingItems$Response>\n >;\n refetchOnboardingState: () => Promise<\n AxiosResponse<UserApi_getOnboardingState$Response>\n >;\n /**\n * Percentage completed of user onboarding\n */\n onboardingProgress: number;\n\n /**\n * Status of onboarding requests\n */\n onboardingLoading: boolean;\n\n /**\n * Intro onboarding flow complete indicator\n */\n isIntroComplete: boolean;\n\n /**\n * Basic tour onboarding flow complete indicator\n */\n isBasicTourComplete: boolean;\n\n /**\n * Profiee setup onboarding flow complete indicator\n */\n isProfileSetupComplete: boolean;\n\n /**\n * Cloud storage onboarding flow complete indicator\n */\n isCloudStorageComplete: boolean;\n\n /**\n * Launch notebook onboarding flow complete indicator\n */\n isLaunchNotebookComplete: boolean;\n\n /**\n * Add asset onboarding flow complete indicator\n */\n isAddAssetComplete: boolean;\n\n /**\n * Invite members to organization flow complete indicator\n */\n isInviteMemberComplete: boolean;\n\n /**\n * Indicate onboarding finish complete indicator\n */\n isIndicateOnboardingFinishComplete: boolean;\n\n /**\n * Indicate whether user has skipped the onboarding\n */\n isUserOnboardingSkipped: boolean;\n\n /**\n * Onboarding state (real-time data state from the DB)\n */\n onboardingState: OnboardingState;\n\n /**\n * Organization basic tour flow complete indicator\n */\n isOrganizationBasicTourComplete: boolean;\n\n /**\n * Indicate organization onboarding finish complete indicator\n */\n isIndicateOrganizationOnboardingFinishComplete: boolean;\n\n /**\n * Indicate whether user has skipped the onboarding for this organization\n */\n isOrganizationOnboardingSkipped: boolean;\n}\n\n/**\n * Initial store\n */\nexport const store: any = {};\n\n/**\n * Create organization context\n */\nconst OnboardingContext = createContext(store);\n\nexport interface OnboardingContextProps extends React.PropsWithChildren {\n /**\n * For testing purposes only\n */\n __unsafeOnboarding?: any;\n /**\n * For testing purposes only\n */\n __unsafeOnboardingState?: any;\n}\n\nexport const OnboardingProvider: React.FC<OnboardingContextProps> = (props) => {\n const { children, __unsafeOnboarding, __unsafeOnboardingState } = props;\n const { user } = useUserContext();\n const { workspace, isOrganizationWorkspace, isUserWorkspace } =\n useWorkspaceContext();\n const [addOnboardingItems] = useAddCompletedOnboardingItems();\n const [refetchOnboardingState, onboardingStateResponse] =\n useGetOnboardingState(\n {\n namespace: workspace?.id as string,\n namespaceType: workspace?.type as string,\n },\n { noSnackbar: true },\n {\n enabled: !!workspace && !__unsafeOnboardingState,\n }\n );\n\n const [refetchCompletedOnboardingItems, onboardingResponse] =\n useGetCompletedOnboardingItems(\n {\n namespace: user?.id,\n organization: isOrganizationWorkspace ? workspace.id : undefined,\n },\n { noSnackbar: true },\n { enabled: !!user && !!workspace && !__unsafeOnboarding }\n );\n\n const completedOnboardingItems = useMemo<OnboardingItem[] | undefined>(\n () => __unsafeOnboarding || onboardingResponse?.data?.entries,\n [onboardingResponse, __unsafeOnboarding]\n );\n\n const onboardingState = useMemo<OnboardingState | undefined>(\n () => __unsafeOnboardingState || onboardingStateResponse?.data,\n [onboardingStateResponse, __unsafeOnboardingState]\n );\n useEventCallback(EventTypes.LAUNCHED_NOTEBOOK, async () => {\n // Mark launch notebook as complete if `LAUNCHED_NOTEBOOK` event dispatched from anywhere\n const data = {\n namespace: user?.id as string,\n items: {\n entries: [OnboardingItem.LaunchNotebook],\n },\n };\n await addOnboardingItems([data]);\n refetchCompletedOnboardingItems();\n });\n\n useEventCallback(EventTypes.ADDED_ASSET, async () => {\n // Mark add asset item as complete if `ADDED_ASSET` event dispatched from anywhere\n refetchOnboardingState();\n });\n\n useEventCallback(EventTypes.LAUNCHED_NOTEBOOK, async () => {\n // Mark launch notebook as complete if `LAUNCHED_NOTEBOOK` event dispatched from anywhere\n const data = {\n namespace: user?.id as string,\n items: {\n entries: [OnboardingItem.LaunchNotebook],\n },\n };\n await addOnboardingItems([data]);\n refetchCompletedOnboardingItems();\n });\n\n /**\n * Checks if the given onboarding flow is completed\n *\n * @param completedOnboardingItems namespace's completed onboarding items\n * @param flow the flow to check if completed\n * @returns boolean\n */\n const isFlowComplete = useCallback(\n (flow: OnboardingFlow): boolean => {\n if (!completedOnboardingItems) {\n // If completed items are not present for any reason do not start the onboarding\n return false;\n }\n\n return !getOnboardingItemsByFlow(flow).some(\n (item) => !completedOnboardingItems?.includes(item)\n );\n },\n [completedOnboardingItems]\n );\n\n const {\n isIntroComplete,\n isBasicTourComplete,\n isProfileSetupComplete,\n isCloudStorageComplete,\n isLaunchNotebookComplete,\n isAddAssetComplete,\n isIndicateOnboardingFinishComplete,\n isUserOnboardingSkipped,\n isOrganizationBasicTourComplete,\n isIndicateOrganizationOnboardingFinishComplete,\n isInviteMemberComplete,\n isOrganizationOnboardingSkipped,\n } = useMemo(() => {\n return {\n isIntroComplete: isFlowComplete(onboardingFlows.user.intro),\n isBasicTourComplete: isFlowComplete(onboardingFlows.user.basicTour),\n isProfileSetupComplete: isFlowComplete(onboardingFlows.user.profileSetup),\n // cloud storage is marked as complete also if default storage settings are already set\n isCloudStorageComplete: onboardingState?.cloud_storage_settings || false,\n isLaunchNotebookComplete: isFlowComplete(\n onboardingFlows.user.launchNotebook\n ),\n isAddAssetComplete: onboardingState?.registered_asset || false,\n isIndicateOnboardingFinishComplete: isFlowComplete(\n onboardingFlows.user.indicateOnboardingFinish\n ),\n isUserOnboardingSkipped: completedOnboardingItems?.includes(\n OnboardingItem.SkipUserOnboarding\n ),\n isOrganizationBasicTourComplete: isFlowComplete(\n onboardingFlows.organization.basicTour\n ),\n isIndicateOrganizationOnboardingFinishComplete: isFlowComplete(\n onboardingFlows.organization.indicateOnboardingFinish\n ),\n isInviteMemberComplete: onboardingState?.organization_members || false,\n isOrganizationOnboardingSkipped: completedOnboardingItems?.includes(\n OnboardingItem.SkipOrganizationOnboarding\n ),\n };\n }, [completedOnboardingItems, onboardingState, isFlowComplete]);\n\n const onboardingProgress = useMemo(() => {\n let flowsToCheck: boolean[] = [];\n\n if (isUserWorkspace) {\n flowsToCheck = [\n isBasicTourComplete,\n isProfileSetupComplete,\n isCloudStorageComplete,\n ];\n } else if (isOrganizationWorkspace) {\n flowsToCheck = [\n isOrganizationBasicTourComplete,\n isInviteMemberComplete,\n isCloudStorageComplete,\n isAddAssetComplete,\n ];\n }\n\n let completedItemsCount = 0;\n flowsToCheck.forEach((isComplete: boolean) => {\n if (isComplete) {\n completedItemsCount++;\n }\n });\n return Math.round((completedItemsCount / flowsToCheck.length) * 100);\n }, [\n isBasicTourComplete,\n isProfileSetupComplete,\n isCloudStorageComplete,\n isAddAssetComplete,\n isUserWorkspace,\n isOrganizationWorkspace,\n isOrganizationBasicTourComplete,\n isInviteMemberComplete,\n ]);\n\n const onboardingLoading = useMemo(() => {\n return !completedOnboardingItems || !onboardingState;\n }, [completedOnboardingItems, onboardingState]);\n\n const providedValue = {\n onboardingLoading,\n completedOnboardingItems,\n refetchCompletedOnboardingItems,\n refetchOnboardingState,\n onboardingProgress,\n isCloudStorageComplete,\n isLaunchNotebookComplete,\n isAddAssetComplete,\n isIntroComplete,\n isBasicTourComplete,\n isProfileSetupComplete,\n isIndicateOnboardingFinishComplete,\n isUserOnboardingSkipped,\n onboardingState,\n isOrganizationBasicTourComplete,\n isIndicateOrganizationOnboardingFinishComplete,\n isInviteMemberComplete,\n isOrganizationOnboardingSkipped,\n };\n\n return (\n <OnboardingContext.Provider value={providedValue}>\n {children}\n </OnboardingContext.Provider>\n );\n};\n\nexport function useOnboardingContext(): OnboardingContextType {\n return useContext(OnboardingContext);\n}\n\nexport default OnboardingProvider;\n","import { ArrayActions, GroupActions, NamespaceActions } from 'api-client';\n\nconst hasPermissions =\n (permission: ArrayActions | NamespaceActions | GroupActions) =>\n (\n permissions: ArrayActions[] | NamespaceActions[] | GroupActions[] = []\n ): boolean => {\n return permissions?.includes(permission as never);\n };\n\nexport default hasPermissions;\n","import hasPermissions from './hasPermissions';\nexport * from './hasPermissions';\n\nexport default hasPermissions;\n","import React, { createContext, useContext } from 'react';\nimport useGetOrganization from 'hooks/api/Organizations/useGetOrganization';\nimport {\n EnabledFeature,\n Organization,\n OrganizationRoles,\n NamespaceType,\n NamespaceActions,\n} from 'api-client';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport hasPermissions from 'utils/helpers/permissions/hasPermissions';\n\ninterface OrganizationContextType {\n organization: Organization;\n hasEnabledFeature: (feature: EnabledFeature) => boolean;\n actions: {\n useGetOrganization: ReturnType<typeof useGetOrganization>;\n };\n isAdmin: boolean;\n isOwner: boolean;\n canEditOrganization: boolean;\n}\n\n/**\n * Initial store\n */\nexport const store: any = {};\n\nconst hasEditOrganizationPermissions = hasPermissions(\n NamespaceActions.EditOrganization\n);\n\n/**\n * Create organization context\n */\nconst OrganizationContext = createContext(store);\n\ninterface OrganizationContextProps extends React.PropsWithChildren {\n /**\n * For testing purposes only\n */\n __unsafeMockOrganization?: Organization;\n}\n\nexport const OrganizationProvider: React.FC<OrganizationContextProps> = (\n props\n) => {\n const { children, __unsafeMockOrganization } = props;\n const { workspace } = useWorkspaceContext();\n const [getOrganization, response, error, loading] = useGetOrganization(\n {\n organization: workspace?.id as string,\n },\n {},\n {\n enabled:\n workspace?.type === NamespaceType.Organization &&\n !__unsafeMockOrganization,\n }\n );\n\n const organization = response?.data || __unsafeMockOrganization;\n\n function hasEnabledFeature(feature: EnabledFeature): boolean | undefined {\n return organization?.enabled_features?.includes(feature);\n }\n\n const isAdmin = organization?.role === OrganizationRoles.Admin;\n const isOwner = organization?.role === OrganizationRoles.Owner;\n\n const providedValue = {\n organization,\n hasEnabledFeature,\n actions: {\n useGetOrganization: [getOrganization, response, error, loading],\n },\n isAdmin,\n isOwner,\n canEditOrganization: hasEditOrganizationPermissions(\n organization?.allowed_actions || []\n ),\n };\n\n if (loading) {\n return null;\n }\n\n return (\n <OrganizationContext.Provider value={providedValue}>\n {children}\n </OrganizationContext.Provider>\n );\n};\n\nexport function useOrganizationContext(): OrganizationContextType {\n return useContext(OrganizationContext);\n}\n\nexport default OrganizationProvider;\n","import { create } from 'zustand';\nimport { SnackbarProps } from 'components/Snackbar';\nimport generateUniqueId from 'utils/helpers/generateUniqueId';\n\nexport interface ShowSnackbarProps\n extends Omit<Omit<SnackbarProps, 'id'>, 'onDismiss'> {\n timeout?: NodeJS.Timeout;\n}\n\nexport interface StateSnackbarType extends ShowSnackbarProps {\n id: string;\n}\n\nexport type ShowSnackbarType = (newSnackbar: ShowSnackbarProps) => void;\ninterface SnackbarState {\n snackbars: StateSnackbarType[];\n dismissSnackbar: (id: string) => void;\n showSnackbar: ShowSnackbarType;\n}\n\nconst useStore = create<SnackbarState>((set, get) => ({\n snackbars: [],\n dismissSnackbar: (snackbarId: string) =>\n set((state: SnackbarState) => ({\n snackbars: state.snackbars.filter(\n (snackbar: StateSnackbarType) => snackbar.id !== snackbarId\n ),\n })),\n showSnackbar: (newSnackbar: ShowSnackbarProps) => {\n /**\n * Snackback expiry in ms. Note that this should match the animation in the\n * snackbar's CSS.\n */\n const timeout = 10_000;\n const snackbars = get().snackbars as StateSnackbarType[];\n const dismissSnackbar = get().dismissSnackbar;\n const existingSnackbar = snackbars.find(\n (sn) =>\n sn.title === newSnackbar.title &&\n sn.description === newSnackbar.description\n );\n\n if (!existingSnackbar) {\n const uniqueId = generateUniqueId();\n /**\n * Auto hide snackbar if dismiss mode is auto\n */\n const snackbar = { ...newSnackbar, id: uniqueId };\n\n if (newSnackbar.dismissMode !== 'manual') {\n snackbar.timeout = setTimeout(() => {\n dismissSnackbar(uniqueId);\n }, timeout);\n }\n\n snackbar.timesCalled = 0;\n\n return set((state: SnackbarState) => ({\n snackbars: [...state.snackbars, snackbar],\n }));\n }\n /**\n * Auto hide snackbar if dismiss mode is auto\n * If snackbar already exists clear old timeout and set a new one\n */\n if (existingSnackbar.timeout) {\n clearTimeout(existingSnackbar.timeout as NodeJS.Timeout);\n existingSnackbar.timeout = setTimeout(() => {\n dismissSnackbar(existingSnackbar.id);\n }, timeout);\n }\n /**\n * timesCalled is used as a key inside snackbar component\n * This will re-trigger the timer animation when setTimeout resets\n */\n existingSnackbar.timesCalled = (existingSnackbar.timesCalled as number) + 1;\n const restSnackBars = snackbars.filter(\n (sn) =>\n sn.title !== newSnackbar.title &&\n sn.description !== newSnackbar.description\n );\n\n return set((state) => ({\n snackbars: [...restSnackBars, existingSnackbar],\n }));\n },\n}));\n\nexport default useStore;\n","import SnackbarStore from './SnackbarStore';\n\nexport * from './SnackbarStore';\n\nexport default SnackbarStore;\n","import React, {\n PropsWithChildren,\n useMemo,\n createContext,\n useEffect,\n useState,\n} from 'react';\nimport useTimeout from 'hooks/useTimeout';\nimport useLocalStorage from 'hooks/useLocalStorage';\nimport useMount from 'hooks/useMount';\ndeclare const window: any;\n\nexport enum Theme {\n Dark = 'dark',\n Light = 'light',\n System = 'system',\n}\n\nconst ThemeContext: any = createContext({});\n\nfunction ThemeProvider(props: PropsWithChildren<any>): React.ReactElement {\n const defaultTheme = props.theme || 'light';\n const defaultSystemTheme = window?.matchMedia?.(\n '(prefers-color-scheme: dark)'\n )?.matches\n ? Theme.Dark\n : Theme.Light;\n\n const [theme, setTheme] = useLocalStorage('DATA_THEME', defaultTheme);\n const [systemTheme, setSystemTheme] = useState(defaultSystemTheme);\n\n const documentElement = useMemo(() => {\n return document.documentElement;\n }, []);\n\n useMount(() => {\n /**\n * Add listener to system theme change (if supported)\n */\n const matchMedia = window?.matchMedia?.('(prefers-color-scheme: dark)');\n if (matchMedia) {\n matchMedia.onchange = (e: any) => {\n const systemTheme = e.matches ? Theme.Dark : Theme.Light;\n setSystemTheme(systemTheme);\n };\n }\n });\n\n useEffect(() => {\n let newTheme = theme;\n if (newTheme === 'system') {\n /**\n * apply system theme if selected theme === 'system'\n */\n newTheme = systemTheme;\n }\n documentElement.setAttribute('data-theme', newTheme as string);\n }, [documentElement, theme, systemTheme]);\n\n function changeTheme(newTheme: Theme): void {\n documentElement.classList.add('changing-theme');\n documentElement.setAttribute('data-theme', newTheme);\n setTheme(newTheme);\n }\n\n useTimeout(\n () => {\n documentElement.classList.remove('changing-theme');\n },\n 200,\n [theme]\n );\n\n const context = {\n /**\n * Always provide a valid theme value (\"light\" or \"dark\")\n * If the selected theme is \"system\" provide the actual theme (defaultSystemTheme) which is either \"light\" or \"dark\"\n */\n theme: theme === 'system' ? defaultSystemTheme : theme,\n changeTheme,\n // The tab selected. can be either \"light\", \"dark\" or \"system\"\n themeTabSelected: theme,\n };\n\n return (\n <ThemeContext.Provider value={context}>\n {props.children}\n </ThemeContext.Provider>\n );\n}\n\nexport { ThemeProvider };\n\nexport default ThemeContext;\n","import ThemeContext from './ThemeContext';\n\nexport default ThemeContext;\nexport * from './ThemeContext';\n","import {\n UserApi_getUser,\n UserApi_getUser$Params,\n UserApi_getUser$Response,\n} from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\n\nconst useGetUser: UseRequestType<\n UserApi_getUser$Params,\n UserApi_getUser$Response\n> = (__, config, queryConfig) => {\n const { isFetching, data, error, refetch } = useQuery<\n AxiosResponse<UserApi_getUser$Response>,\n UserApi_getUser$Params\n >(['/user'], useQueryRequest(UserApi_getUser, config), queryConfig);\n\n return [refetch, data, error, isFetching];\n};\n\nexport default useGetUser;\n","import useGetUser from './useGetUser';\n\nexport * from './useGetUser';\nexport default useGetUser;\n","import {\n UserApi_checkLoginCookie,\n UserApi_checkLoginCookie$Params,\n UserApi_checkLoginCookie$Response,\n UserApi_checkLoginCookie$Path,\n} from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\n\nexport const checkLoginKey = UserApi_checkLoginCookie$Path;\n\nconst useCheckLoginCookie: UseRequestType<\n UserApi_checkLoginCookie$Params,\n UserApi_checkLoginCookie$Response\n> = (__, config, queryConfig) => {\n const { isFetching, data, error, refetch } = useQuery<\n AxiosResponse<UserApi_checkLoginCookie$Response>,\n UserApi_checkLoginCookie$Params\n >(\n [checkLoginKey],\n useQueryRequest(UserApi_checkLoginCookie, config),\n queryConfig\n );\n\n return [refetch, data, error, isFetching];\n};\n\nexport default useCheckLoginCookie;\n","import useCheckLoginCookie from './useCheckLoginCookie';\n\nexport default useCheckLoginCookie;\nexport * from './useCheckLoginCookie';\n","import { QueryKey } from '@tanstack/react-query';\nimport useMount from 'hooks/useMount';\nimport queryClient from 'utils/helpers/queryClient';\n\n// Hook that subscribes to a list of query keys\n// and fires the callback function when an `update` event occurs\nconst useQueryDataListener = <T>(\n queryKey: QueryKey,\n callback: (data: T) => void\n) => {\n useMount(() => {\n // Subscribe to changes in the cache for the specific query key\n const unsubscribe = queryClient.getQueryCache().subscribe((event) => {\n // Check if the query key matches and the data has been updated\n if (\n event?.type === 'updated' &&\n event.query.state.fetchStatus === 'idle' &&\n event?.query?.queryKey.some((value: any) => queryKey.includes(value))\n ) {\n const data = event.query.state.data?.data;\n if (data) {\n callback(data);\n }\n }\n });\n\n // Cleanup subscription on unmount\n return unsubscribe;\n });\n};\n\nexport default useQueryDataListener;\n","import useQueryDataListener from './useQueryDataListener';\n\nexport default useQueryDataListener;\n","import React, { useContext, useEffect, useState, useRef } from 'react';\nimport useGetUser from 'hooks/api/User/useGetUser';\nimport {\n EnabledFeature,\n InlineResponse200,\n ProductTier,\n User,\n UserApi_checkLoginCookie$Response,\n} from 'api-client';\nimport isAxiosError from 'utils/helpers/isAxiosError';\nimport { RefetchType } from 'hooks/useRequest';\nimport { AxiosResponse } from 'axios';\nimport eventBus, { EventTypes } from 'utils/helpers/eventBus';\nimport useMount from 'hooks/useMount';\nimport Loader from 'components/Loader';\nimport { authLinks } from 'utils/links';\nimport history from 'utils/helpers/history';\nimport queryClient from 'utils/helpers/queryClient';\nimport useCheckLoginCookie, {\n checkLoginKey,\n} from 'hooks/api/User/useCheckLoginCookie';\nimport JupyterStore from 'store/JupyterStore';\nimport useQueryDataListener from 'hooks/useQueryDataListener';\n\n/**\n * Initial store\n */\nexport const store: any = {};\n\nconst loadedUserChannel = 'LOADED_USER';\n// Channel to broadcast and sync user data across all tabs\nconst tabChannel = new BroadcastChannel(loadedUserChannel);\n\n/**\n * Create user context\n */\nconst UserContext = React.createContext(store);\n\ninterface UserProviderProps extends React.PropsWithChildren {\n defaultUser?: User | false;\n}\n\nexport const UserProvider: React.FC<UserProviderProps> = ({\n children,\n defaultUser,\n}) => {\n const [user, setUser] = useState<User | undefined>(defaultUser as User);\n const setSelectedRegion = JupyterStore((state) => state.setSelectedRegion);\n const selectedRegion = JupyterStore((state) => state.selectedRegion);\n\n /**\n * Make a request to check the existence of a login cookie\n */\n const [\n checkLogin,\n checkLoginCookieResponse,\n checkLoginCookieError,\n checkLoginCookieLoading,\n ] = useCheckLoginCookie(\n undefined,\n {\n noSnackbar: true,\n },\n {\n enabled: defaultUser === undefined,\n }\n );\n /**\n * GET user object only if:\n * - there is no default user passed\n * - check_login response has finished and the value is true\n * - or check_login response has finished with an error\n */\n const shouldFetchUser =\n defaultUser === undefined &&\n (!!checkLoginCookieResponse?.data?.status || !!checkLoginCookieError);\n\n /**\n * userRef is used in the logout event listener\n */\n const userRef = useRef(user);\n const [manuallyFetchUser, userResponse, userError, userInfoLoading] =\n useGetUser(\n undefined,\n { noSnackbar: true },\n {\n enabled: shouldFetchUser,\n }\n );\n\n /**\n * This fixes an important bug which causes the user to get stuck in login page\n * Since the useGetUser hook is conditonally enabled,\n * the automatic request may stuck, and when switching from false to true it may not fire the request\n * This must be a react-query bug (the `enabled` property has serious issues anyway).\n *\n * The code below will enforce the http request if shouldFetchUser is true\n * while there is no response cached\n *\n * How to reproduce this (important):\n * - Run the whole stack locally\n * - Log in\n * - Open the getUser handler in mvp go and hardcode a 500 error response and re-run mvp go server\n * - Refresh the page, you will have valid login cookie but you will get an error on getUser which will log you out\n * - Revert the change in mvp go and re-run it\n * - Log in\n * - You are stuck\n *\n * We should refactor the whole auth state logic across the app since this approach has a lot of problems\n * and this is a cheap fix\n */\n useQueryDataListener<UserApi_checkLoginCookie$Response>(\n [checkLoginKey],\n (data) => {\n if (data.status) {\n /**\n * Any time a check login cookie request succeeds, fetch the user object\n */\n manuallyFetchUser();\n }\n }\n );\n\n /**\n * Keep userRef in sync with user\n */\n useEffect(() => {\n userRef.current = user;\n }, [user]);\n\n useEffect(() => {\n if (user?.default_region && !selectedRegion) {\n setSelectedRegion(user.default_region);\n }\n }, [user, setSelectedRegion, selectedRegion]);\n\n /**\n * Indicates user login status\n */\n const isLoggedIn = !!user;\n\n /**\n * Sync user data from other tabs\n */\n tabChannel.onmessage = (ev: MessageEvent): void => {\n setUser(ev.data);\n };\n\n useEffect(() => {\n const userData = userResponse?.data;\n\n if (userData) {\n tabChannel.postMessage(userData);\n\n /**\n * Update user object every time fetchUser is called\n */\n setUser(userData);\n }\n }, [userResponse?.data]);\n\n useEffect(() => {\n /**\n * We care mostly for 500s, since 401 errors are handled\n * from the useRequest hook.\n */\n if (isAxiosError(userError) && userError.response?.status !== 401) {\n if (isLoggedIn) {\n history.push(authLinks.logout());\n }\n }\n }, [userError, isLoggedIn]);\n\n function hasEnabledFeature(feature: EnabledFeature): boolean | undefined {\n return user?.enabled_features?.includes(feature);\n }\n\n /**\n * Publish values to be used inside our components\n */\n const providerValue = {\n user,\n isLoggedIn,\n isInPaidTier: user?.product_tier === ProductTier.Paid,\n hasEnabledFeature,\n actions: {\n checkLogin,\n },\n };\n\n useMount(() => {\n eventBus.on(EventTypes.LOGOUT, () => {\n /**\n * If there are user data, clear queryClient and user\n */\n if (!!userRef.current) {\n queryClient.clear();\n setUser(undefined);\n }\n });\n });\n\n if (\n (checkLoginCookieLoading || userInfoLoading || userResponse?.data) &&\n !user\n ) {\n /**\n * Render skeleton if user data still loading\n * or if user data are fetched but not set to local state yet\n */\n return <Loader />;\n }\n\n return (\n <UserContext.Provider value={providerValue}>\n {children}\n </UserContext.Provider>\n );\n};\n\nexport const withUserProvider = (\n ChildComponent: any,\n defaultUser?: User\n): any => {\n const WithUserProvider = (props: any): any => {\n return (\n <UserProvider defaultUser={defaultUser}>\n <ChildComponent {...props} />\n </UserProvider>\n );\n };\n return WithUserProvider;\n};\n\ninterface UserContextType {\n user: User;\n isLoggedIn: boolean;\n isInPaidTier: boolean;\n hasEnabledFeature: (feature: EnabledFeature) => boolean;\n actions: {\n checkLogin: RefetchType<AxiosResponse<InlineResponse200, any>>;\n };\n}\n\n/**\n * Export user pre-defined context\n */\nexport function useUserContext(): UserContextType {\n return useContext(UserContext);\n}\n\nexport default UserContext;\n","import { unstable_batchedUpdates } from 'react-dom';\nimport { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\ninterface WorkspaceSelectedStore {\n pageSize: number;\n setPageSize: (count: number) => void;\n notificationsSnoozed: boolean;\n setNotificationsSnoozed: (active: boolean) => void;\n}\n\nconst persistConfig = {\n name: 'userPreferences-storage',\n};\n\nconst useUserPreferencesStore = create(\n persist<WorkspaceSelectedStore>(\n (set, get) => ({\n pageSize: 10,\n setPageSize: (count: number) => set({ pageSize: count }),\n notificationsSnoozed: false,\n setNotificationsSnoozed: (active: boolean) =>\n set({ notificationsSnoozed: active }),\n }),\n persistConfig\n )\n);\n\nexport const resetPageSize = () => {\n unstable_batchedUpdates(() => {\n useUserPreferencesStore.getState().setPageSize(10);\n });\n};\n\nexport default useUserPreferencesStore;\n","import useUserPreferencesStore from './UserPreferencesStore';\n\nexport default useUserPreferencesStore;\n","import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n AssetListSummariesResponseData,\n AssetLocations,\n AssetType,\n EnabledFeature,\n NamespaceActions,\n NamespaceType,\n StorageLocation,\n} from 'api-client';\nimport useWorkspaceStore from 'store/WorkspaceSelectedStore';\nimport { useUserContext } from 'store/UserContext';\nimport useGetOrganization from 'hooks/api/Organizations/useGetOrganization';\nimport { AssetLocationKey } from 'utils/constants/AssetLocationKey';\nimport useListAssetSummaries from 'hooks/api/Assets/useListAssetSummaries';\nimport useDidUpdateEffect from 'hooks/useDidUpdateEffect';\nimport { captureException } from '@sentry/browser';\nimport Loader from 'components/Loader';\n\n/**\n * Initial store\n */\nexport const store: any = {};\n\nconst loadedWorkspaceChannel = 'LOADED_WORKSPACE';\n// Channel to broadcast and sync workspace data across all tabs\nconst tabChannel = new BroadcastChannel(loadedWorkspaceChannel);\n\n/**\n * Create workspace context\n */\nconst WorkspaceContext = React.createContext(store);\n\ninterface WorkspaceProviderProps extends React.PropsWithChildren {\n // for testing only\n __dangerousDefaultWorkspace?: Workspace;\n __dangerousDefaultSummaries?: AssetListSummariesResponseData;\n}\n\nexport interface Workspace {\n type: NamespaceType;\n namespace: string;\n name: string;\n id: string;\n logo: string | undefined;\n enabledFeatures: EnabledFeature[];\n defaultS3PathCredentialsName: string | undefined;\n defaultS3Path: string | undefined;\n allowedActions: NamespaceActions[];\n assetLocations: AssetLocations | undefined;\n assumeRoleArn?: string;\n assetSummaries?: AssetListSummariesResponseData;\n}\n\nexport const WorkspaceProvider: React.FC<WorkspaceProviderProps> = ({\n children,\n __dangerousDefaultWorkspace,\n __dangerousDefaultSummaries,\n}) => {\n const workspaceSelected = useWorkspaceStore(\n (state) => state.workspaceSelected\n );\n\n const clearWorkspaceSelectedStore = useWorkspaceStore(\n (state) => state.clearWorkspaceSelectedStore\n );\n\n const setWorkspaceSelected = useWorkspaceStore(\n (store) => store.setWorkspaceSelected\n );\n const { user, isLoggedIn } = useUserContext();\n const [, orgResponse, orgError] = useGetOrganization(\n {\n organization: workspaceSelected?.id as string,\n },\n { noSnackbar: true },\n { enabled: workspaceSelected?.namespaceType === NamespaceType.Organization }\n );\n\n const [workspace, setWorkspace] = useState<Workspace | undefined>(\n __dangerousDefaultWorkspace\n );\n\n const [, assetSummariesResponse, assetSummariesError] = useListAssetSummaries(\n { namespace: workspace?.namespace as string },\n {},\n { enabled: !!workspace && !__dangerousDefaultSummaries }\n );\n const assetSummaries =\n __dangerousDefaultSummaries || assetSummariesResponse?.data?.data;\n\n useDidUpdateEffect(() => {\n if (assetSummariesError) {\n captureException(assetSummariesError);\n }\n }, [assetSummariesError]);\n\n /**\n * Set user as the current workspace\n * Used in situations like \"Delete organization\".\n */\n const resetWorkspace = useCallback(() => {\n setWorkspace(undefined);\n clearWorkspaceSelectedStore();\n }, [clearWorkspaceSelectedStore, setWorkspace]);\n\n /**\n * Delete user data from store on log out\n */\n useEffect(() => {\n if (!isLoggedIn && !workspaceSelected) {\n resetWorkspace();\n return;\n }\n\n if (\n workspaceSelected?.namespaceType === NamespaceType.Organization &&\n orgError\n ) {\n resetWorkspace();\n return;\n }\n\n if (user && !workspaceSelected) {\n if (__dangerousDefaultWorkspace) {\n // For Unit tests only\n // if __dangerousDefaultWorkspace exists, it is already in localstorage\n return;\n }\n\n // save fallback workspace to localstorage\n // this will trigger a rerender and will set workspace to current state\n setWorkspaceSelected({\n id: user.id,\n namespace: user.username,\n namespaceType: NamespaceType.User,\n });\n return;\n }\n\n if (\n user &&\n (workspaceSelected?.namespaceType === NamespaceType.User ||\n !workspaceSelected)\n ) {\n // If no workspace is set but user exists, set user as the selected workspace\n setWorkspace({\n type: NamespaceType.User,\n id: user.id,\n namespace: user.username,\n name: user.name || '',\n logo: user.logo,\n enabledFeatures: user.enabled_features || [],\n defaultS3Path: user.default_s3_path || '',\n defaultS3PathCredentialsName:\n user.default_s3_path_credentials_name || '',\n allowedActions: [],\n assetLocations: user.asset_locations,\n });\n return;\n }\n\n if (workspaceSelected?.namespaceType === NamespaceType.Organization) {\n if (orgError) {\n // Set workspace to user on organization error\n setWorkspace({\n type: NamespaceType.User,\n id: user.id,\n namespace: user.username,\n name: user.name || '',\n logo: user.logo,\n enabledFeatures: user.enabled_features || [],\n defaultS3Path: user.default_s3_path || '',\n defaultS3PathCredentialsName:\n user.default_s3_path_credentials_name || '',\n allowedActions: [],\n assetLocations: user.asset_locations,\n });\n return;\n }\n\n const org = orgResponse?.data;\n\n if (org) {\n setWorkspace({\n type: NamespaceType.Organization,\n id: org.id,\n namespace: org.name,\n name: org.name,\n logo: org.logo,\n enabledFeatures: org.enabled_features || [],\n defaultS3Path: org.default_s3_path || '',\n defaultS3PathCredentialsName:\n org.default_s3_path_credentials_name || '',\n allowedActions: org.allowed_actions || [],\n assetLocations: org.asset_locations,\n assumeRoleArn: org.assume_role_arn,\n });\n }\n return;\n }\n }, [\n isLoggedIn,\n user,\n workspaceSelected,\n orgResponse,\n orgError,\n setWorkspaceSelected,\n __dangerousDefaultWorkspace,\n resetWorkspace,\n ]);\n\n /**\n * Sync user data from other tabs\n */\n tabChannel.onmessage = (ev: MessageEvent): void => {\n setWorkspace(ev.data);\n };\n\n function hasEnabledFeature(feature: EnabledFeature): boolean | undefined {\n return workspace?.enabledFeatures?.includes(feature);\n }\n\n const getStorageLocationByKey = useCallback(\n (key: AssetLocationKey): StorageLocation | undefined =>\n workspace?.assetLocations?.[key],\n [workspace]\n );\n\n const getDefaultStorageLocation = useCallback(\n (key?: AssetLocationKey): StorageLocation | undefined => {\n const rootStorageLocation = {\n path: workspace?.defaultS3Path,\n credentials_name: workspace?.defaultS3PathCredentialsName,\n };\n if (!key) {\n return rootStorageLocation;\n }\n return workspace?.assetLocations?.[key] || rootStorageLocation;\n },\n [workspace]\n );\n\n const isUserWorkspace = workspace?.type === NamespaceType.User;\n const isOrganizationWorkspace =\n workspace?.type === NamespaceType.Organization;\n\n const hasEditPermissions = useMemo(\n () =>\n isUserWorkspace ||\n (isOrganizationWorkspace &&\n workspace?.allowedActions.includes(NamespaceActions.EditOrganization)),\n [workspace, isUserWorkspace, isOrganizationWorkspace]\n );\n\n // Checks the existence of the givenAssetType in both owned and shared asset summaries\n const hasAssetsOfType = useCallback(\n (assetType: AssetType) => {\n if (!assetSummaries) {\n return false;\n }\n const ownedOfType = assetSummaries?.owned?.[assetType] || 0;\n const sharedOfType = assetSummaries?.shared?.[assetType] || 0;\n return ownedOfType + sharedOfType > 0;\n },\n [assetSummaries]\n );\n\n /**\n * Publish values to be used inside our components\n */\n const providerValue = {\n workspace: workspace,\n hasEnabledFeature,\n resetWorkspace,\n isUserWorkspace,\n isOrganizationWorkspace,\n getStorageLocationByKey,\n getDefaultStorageLocation,\n hasEditPermissions,\n assetSummaries,\n hasAssetsOfType,\n };\n\n if (!workspace && isLoggedIn) {\n return <Loader />;\n }\n\n return (\n <WorkspaceContext.Provider value={providerValue}>\n {children}\n </WorkspaceContext.Provider>\n );\n};\n\ninterface WorkspaceContextType {\n workspace: Workspace;\n hasEnabledFeature: (feature: EnabledFeature) => boolean;\n resetWorkspace: () => void;\n isUserWorkspace: boolean;\n isOrganizationWorkspace: boolean;\n /**\n * Returns the storage location for a specific asset type\n * If storage location not found, it returns undefined\n */\n getStorageLocationByKey: (\n key: AssetLocationKey\n ) => StorageLocation | undefined;\n /**\n * Returns the default storage location, either by key or root\n * If storage location by key not found, it fallbacks to root storage location\n */\n getDefaultStorageLocation: (\n key?: AssetLocationKey\n ) => StorageLocation | undefined;\n hasEditPermissions: boolean;\n assetSummaries: AssetListSummariesResponseData | undefined;\n hasAssetsOfType: (assetType: AssetType) => boolean;\n}\n\n/**\n * Export workspace pre-defined context\n */\nexport function useWorkspaceContext(): WorkspaceContextType {\n return useContext(WorkspaceContext);\n}\n\nexport default WorkspaceContext;\n","/**\n * Persistant store used for namespace switching\n */\n\nimport { NamespaceType } from 'api-client';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\n\nexport interface WorkspaceSelected {\n namespace: string;\n id: string;\n namespaceType: NamespaceType;\n logo?: string;\n name?: string;\n state?: any;\n email?: string;\n}\n\ninterface WorkspaceSelectedStore {\n workspaceSelected: WorkspaceSelected | undefined;\n setWorkspaceSelected: (ws: WorkspaceSelected) => void;\n clearWorkspaceSelectedStore: () => void;\n}\n\nconst persistConfig = {\n name: 'workspace-storage',\n};\n\nconst useStore = create(\n persist<WorkspaceSelectedStore>(\n (set, get) => ({\n workspaceSelected: undefined,\n setWorkspaceSelected: (ws: WorkspaceSelected | undefined) =>\n set({ workspaceSelected: ws }),\n clearWorkspaceSelectedStore: () => set({ workspaceSelected: undefined }),\n }),\n persistConfig\n )\n);\n\nexport const clearWorkspaceSelectedStore = () => {\n unstable_batchedUpdates(() => {\n useStore.getState().clearWorkspaceSelectedStore();\n });\n};\n\nexport default useStore;\n","import WorkspaceSelectedStore from './WorkspaceSelectedStore';\n\nexport * from './WorkspaceSelectedStore';\nexport default WorkspaceSelectedStore;\n","export enum GlobalVariable {\n GOOGLE_CLIENT_ID = 'GOOGLE_CLIENT_ID',\n JUPYTERHUB_URL = 'JUPYTERHUB_URL',\n BASE_PATH = 'BASE_PATH',\n OKTA_DOMAIN = 'OKTA_DOMAIN',\n OKTA_CLIENT_ID = 'OKTA_CLIENT_ID',\n GITHUB_CLIENT_ID = 'GITHUB_CLIENT_ID',\n STRIPE_CLIENT_ID = 'STRIPE_CLIENT_ID',\n STRIPE_API_KEY = 'STRIPE_API_KEY',\n SENTRY_ENVIRONMENT = 'SENTRY_ENVIRONMENT',\n SENTRY_DSN = 'SENTRY_DSN',\n UI_GOOGLE_CAPTCHA_SITE_KEY = 'UI_GOOGLE_CAPTCHA_SITE_KEY',\n AWS_ACCOUNT_ID = 'AWS_ACCOUNT_ID',\n AWS_ENDPOINT = 'AWS_ENDPOINT',\n GCP_ENDPOINT = 'GCP_ENDPOINT',\n LDAP = 'LDAP',\n}\n","enum IframeActions {\n /**\n * Message from our webapp to Jupyterhub with data\n * regarding what server/image to auto-select and launch.\n */\n TILEDB_AUTOLOAD_IMAGE = 'TILEDB_AUTOLOAD_IMAGE',\n /**\n * Message sent while loading a notebook server with the progress as message\n */\n TILEDB_NOTEBOOK_PROGRESS = 'TILEDB_NOTEBOOK_PROGRESS',\n /**\n * Message sent from Jupyterhub's error.html\n */\n TILEDB_ERROR_500 = 'TILEDB_ERROR_500',\n /**\n * Message sent from jupyterlab (prompt plugin), to request\n * webapp to show \"add credentials\" modal.\n */\n TILEDB_ADD_CREDENTIALS = '@tiledb/prompt_options::add_credentials',\n /**\n * Message sent from webapp to notebook when user add credentials\n * The flow starts when prompt plugin asks the app to show the add\n * credentials modal by sending message TILEDB_ADD_CREDENTIALS\n */\n TILEDB_UPDATED_CREDENTIALS = 'TILEDB_UPDATED_CREDENTIALS',\n /**\n * Message sent from jupyterlab/jupyterhub to show a loader,\n * **DEPRECATED**\n */\n TILEDB_SHOW_LOADER_START = 'TILEDB_SHOW_LOADER_START',\n /**\n * Message sent from jupyterlab/jupyterhub to hide the loader,\n * **DEPRECATED**\n */\n TILEDB_SHOW_LOADER_STOP = 'TILEDB_SHOW_LOADER_STOP',\n /**\n * Message sent from Jupyterhub, in order to redirect user\n * to the billing page to update billing information.\n */\n TILEDB_REQUEST_CREDITS = 'TILEDB_REQUEST_CREDITS',\n /**\n * Message sent when jupyterlab has loaded\n */\n TILEDB_JUPYTERLAB_LOADED = 'jupyterlab_loaded',\n /**\n * Message sent when jupyterlab has loaded\n */\n TILEDB_JUPYTERLAB_LAUNCHING = 'jupyterlab_launching',\n /**\n * Message sent when Jupyterhub's not_running.html page is rendered\n * Rare case, since when rendered jupyterhub is redirecting\n * user after 1 sec to the spawn page\n */\n TILEDB_JUPYTER_NOT_RUNNING = 'jupyter_not_running',\n /**\n * Message sent when Jupyterhub's spawn.html is rendered\n * The page where user selects image & server profile.\n */\n TILEDB_SPAWN_READY = 'spawn_options_ready',\n\n /**\n * Message sent from Jupyterhub & Jupyterlab when they load\n */\n TILEDB_JUPYTERHUB_OR_JUPYTERLAB_LOADED = 'jupyter_loaded',\n /**\n * Message sent to Jupyterhub to request what the user has selected.\n */\n TILEDB_REQUEST_SELECTIONS = 'TILEDB_REQUEST_SELECTIONS',\n /**\n * Message sent from Jupyterhub spawn page, with the available images & server profiles.\n */\n TILEDB_AVAILABLE_PROFILES = 'TILEDB_AVAILABLE_PROFILES',\n /**\n * Message sent to Jupyterhub to not render a submit button.\n */\n TILEDB_RENDER_NO_SUBMIT_BUTTON = 'TILEDB_RENDER_NO_SUBMIT_BUTTON',\n\n /**\n * Message received from Jupyterhub with the selections of the user.\n */\n TILEDB_JUPYTERHUB_USER_SELECTIONS = 'TILEDB_JUPYTERHUB_USER_SELECTIONS',\n /**\n * Message received from jupyter notebooks (TileDB prompt extension)\n * to open modal and create a new notebook\n */\n TILEDB_CREATE_NOTEBOOK = 'TILEDB_CREATE_NOTEBOOK',\n\n /**\n * Message received when jupyterlab extension @tiledb-inc/open_file has loaded\n */\n TILEDB_OPEN_FILE_EXTENSION_LOADED = '@tiledb/open_file::loaded',\n /**\n * Message prefix for notebook sharing request from jupyterlab extension @tiledb-inc/share_notebook\n */\n TILEDB_NOTEBOOK_SHARING_PREFIX = 'tiledb_notebook_share::',\n /**\n * Message sent from jupyterhub upon user selection, if notebook is missing image & server profile\n */\n TILEDB_UPDATE_FILE_PROPERTIES = 'TILEDB_UPDATE_FILE_PROPERTIES',\n /**\n * Message to be sent to jupyter if user has no credits\n */\n TILEDB_NO_CREDITS = 'TILEDB_NO_CREDITS',\n /**\n * Message sent from voila, when a voila page is rendered.\n */\n TILEDB_VOILA_LAUNCHED = 'TILEDB_VOILA_LAUNCHED',\n}\n\nexport default IframeActions;\n","import IframeActions from './IframeActions';\n\nexport default IframeActions;\n","import { MimeType } from './MimeType';\n\nexport default MimeType;\n","export enum MimeType {\n // TileDB-specific mime types\n Notebook = 'application/vnd.tiledb.v1.notebook',\n Array = 'application/vnd.tiledb.v1.array',\n UDF = 'application/vnd.tiledb.v1.user_defined_function',\n MLModel = 'application/vnd.tiledb.v1.ml_model',\n RegisterdTaskGraph = 'application/vnd.tiledb.v1.registered_task_graph',\n Group = 'application/vnd.tiledb.v1.group',\n Vcf = 'application/vnd.tiledb.v1.vcf',\n SOMA = 'application/vnd.tiledb.v1.soma',\n Pointcloud = 'application/vnd.tiledb.v1.pointcloud',\n Bioimg = 'application/vnd.tiledb.v1.bioimg',\n Geometry = 'application/vnd.tiledb.v1.geometry',\n Raster = 'application/vnd.tiledb.v1.raster',\n VectorSearch = 'application/vnd.tiledb.v1.vector_search',\n\n // Common mime types\n OctetStream = 'application/octet-stream',\n CSV = 'text/csv',\n PDF = 'application/pdf',\n JPEG = 'image/jpeg',\n PNG = 'image/png',\n TIFF = 'image/tiff',\n TXT = 'text/plain',\n DOCX = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n JSON = 'application/json',\n GZIP = 'application/gzip',\n ZIP = 'application/zip',\n WAV = 'audio/wav',\n HTML = 'text/html',\n VCARD = 'text/vcard',\n HDF = 'application/x-hdf',\n TAR = 'application/x-tar',\n GIF = 'image/gif',\n XML = 'text/xml',\n MP4 = 'video/mp4',\n}\n","enum sessionStorageKeys {\n /**\n * Path to redirect after a successful login\n */\n REDIRECT_TO_AFTER_LOGIN = 'REDIRECT_TO_AFTER_LOGIN',\n INVALID_TOKEN = 'INVALID_TOKEN',\n LAZY_LOAD_REFRESHED = 'LAZY_LOAD_REFRESHED',\n}\n\nexport default sessionStorageKeys;\n","import sessionStorageKeys from './sessionStorageKeys';\n\nexport default sessionStorageKeys;\n","import * as Sentry from '@sentry/browser';\n\nlet regions: Record<string, string> = {};\ntry {\n regions = JSON.parse(window.SUPPORTED_REGIONS || '{}');\n} catch (error) {\n Sentry.captureException(error);\n}\n\nexport default regions;\n","import supportedRegions from './supportedRegions';\n\nexport default supportedRegions;\n","import CustomError from '../CustomError';\n\nclass ForbiddenError extends CustomError {\n static type = 'ChunkLoadError';\n\n constructor(message?: string) {\n super(message);\n this._type = ForbiddenError.type;\n }\n}\n\nexport default ForbiddenError;\n","import ChunkLoadError from './ChunkLoadError';\n\nexport default ChunkLoadError;\n","class CustomError extends Error {\n protected _type!: string;\n\n get type(): string {\n return this._type;\n }\n}\n\nexport default CustomError;\n","import CustomError from '../CustomError';\n\nclass UnauthorizedError extends CustomError {\n static type = 'UNAUTHORIZED';\n\n constructor(message?: string) {\n super(message);\n this._type = UnauthorizedError.type;\n }\n}\n\nexport default UnauthorizedError;\n","import CustomError from '../CustomError';\n\nclass ForbiddenError extends CustomError {\n static type = 'FORBIDDEN';\n\n constructor(message?: string) {\n super(message);\n this._type = ForbiddenError.type;\n }\n}\n\nexport default ForbiddenError;\n","import ForbiddenError from './ForbiddenError';\n\nexport default ForbiddenError;\n","import CustomError from '../CustomError';\n\nclass NotFoundError extends CustomError {\n static type = 'NOT_FOUND';\n\n constructor(message?: string) {\n super(message);\n this._type = NotFoundError.type;\n }\n}\n\nexport default NotFoundError;\n","import NotFoundError from './NotFoundError';\n\nexport default NotFoundError;\n","import isString from 'utils/helpers/string/isString';\ndeclare const global: any;\n\n/**\n * Indicates whether a config is set from golang\n * Checking if the value is truthy and does not start with go's template syntax \"{{ .\" i.e. {{ .Var }}\n */\nconst configExists = (variableName: string) => {\n const value = global[variableName] as string;\n\n if (isString(value) && value.startsWith('{{ .')) {\n return false;\n }\n\n return !!value;\n};\n\nexport default configExists;\n","import configExists from './configExists';\n\nexport default configExists;\n","import { curry } from 'ramda';\nimport { DateTime, DurationObject } from 'luxon';\nimport { isString } from '../string';\nimport { isNumber } from '../number';\nimport { formatDistance } from './formatDistance';\nimport { captureException } from '@sentry/react';\n\nexport function isDateTime(date: any): date is DateTime {\n return date instanceof DateTime;\n}\n\nexport function isDate(date: any): date is Date {\n return date instanceof Date;\n}\n\nexport const getDateTimeInstanceFromDate = (\n date: string | Date | DateTime | number\n): DateTime => {\n if (isString(date)) {\n return DateTime.fromISO(date);\n } else if (isDate(date)) {\n return DateTime.fromJSDate(date);\n } else if (isNumber(date)) {\n return DateTime.fromMillis(date);\n } else if (isDateTime(date)) {\n return date;\n }\n // If date is undefined send error to sentry and provide a default Datetime\n if (!date) {\n captureException(\n new Error(`getDateTimeInstanceFromDate: Input date was ${date}`)\n );\n }\n\n return DateTime.now();\n};\n\nexport const plus = (\n obj: DurationObject,\n date: string | Date | DateTime | number\n): Date => {\n const dt = getDateTimeInstanceFromDate(date);\n\n return dt.plus(obj).toJSDate();\n};\n\ntype Units =\n | 'year'\n | 'month'\n | 'day'\n | 'hour'\n | 'minute'\n | 'second'\n | 'millisecond';\n\nexport const endOf = (\n unit: Units,\n date: string | Date | DateTime | number\n): Date => {\n const dt = getDateTimeInstanceFromDate(date);\n\n return dt.endOf(unit).toJSDate();\n};\n\nexport const startOf = (\n unit: Units,\n date: string | Date | DateTime | number\n): Date => {\n const dt = getDateTimeInstanceFromDate(date);\n\n return dt.startOf(unit).toJSDate();\n};\n\nexport function dateToEpochSeconds(date: Date | DateTime | number): any {\n if (isDate(date)) {\n return Math.round(date.getTime() / 1000);\n } else if (isDateTime(date)) {\n return date.toSeconds();\n } else if (isNumber(date)) {\n return Math.round(date / 1000);\n }\n\n return date;\n}\n\nexport function unixToJSTimestamp(timestamp: number): number {\n return timestamp * 1000;\n}\n\nexport function formatDate(\n date: string | Date | DateTime,\n dateFormat = 'dd MMM yyyy'\n): string {\n return getDateTimeInstanceFromDate(date).toFormat(dateFormat);\n}\n\nexport const formatTimezonedDate = curry(\n (\n timezone: string,\n date: string | Date | DateTime | number,\n dateFormat: string\n ): string => {\n const fallbackTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const tz = timezone || fallbackTimezone;\n\n return getDateTimeInstanceFromDate(date).setZone(tz).toFormat(dateFormat);\n }\n);\n\nexport const relativeTimeInWordsToNow = (\n value: string | number | Date\n): string => {\n const date = new Date(value);\n\n return formatDistance(new Date(Date.now()), date);\n};\n\n// Check if the duration (finish time - start time) is more than X milliseconds\nexport const durationMoreThan =\n (millis: number) =>\n (startTime: string, finishTime: string): boolean => {\n const endDateTime = DateTime.fromISO(finishTime);\n const duration = endDateTime.diff(DateTime.fromISO(startTime));\n\n return Math.abs(duration.valueOf()) > millis;\n };\n","import { getDateTimeInstanceFromDate } from './date';\nimport { curry } from 'ramda';\n\nconst formatDistanceLocale = {\n lessThanXSeconds: {\n one: '< a second',\n other: '< {{count}} seconds',\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds',\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: '< a minute',\n other: '< {{count}} minutes',\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes',\n },\n\n aboutXHours: {\n one: '1 hour',\n other: '{{count}} hours',\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours',\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days',\n },\n\n aboutXMonths: {\n one: '1 month',\n other: '{{count}} months',\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months',\n },\n\n aboutXYears: {\n one: '1 year',\n other: '{{count}} years',\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years',\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years',\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years',\n },\n};\n\ntype LocaleType = typeof formatDistanceLocale;\n\nfunction formatDistanceToString(\n token: keyof LocaleType,\n count: number\n): string {\n let result;\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = (formatDistanceLocale[token] as LocaleType['aboutXHours']).one;\n } else {\n result = (\n formatDistanceLocale[token] as LocaleType['aboutXHours']\n ).other.replace('{{count}}', String(count));\n }\n\n return result as string;\n}\n\nconst MINUTES_IN_DAY = 1440;\nconst MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nconst MINUTES_IN_MONTH = 43200;\nconst MINUTES_IN_TWO_MONTHS = 86400;\n\nexport const formatDetailedDistance = (\n dirtyDate: Date,\n dirtyBaseDate: Date\n): string => {\n const duration = getDateTimeInstanceFromDate(dirtyDate).diff(\n getDateTimeInstanceFromDate(dirtyBaseDate),\n ['years', 'months', 'days', 'hours', 'minutes', 'seconds', 'milliseconds']\n );\n\n let { minutes, hours, seconds, milliseconds, years, months, days } = duration;\n\n years = Math.abs(years);\n months = Math.abs(months);\n days = Math.abs(days);\n minutes = Math.abs(minutes);\n hours = Math.abs(hours);\n seconds = Math.abs(seconds);\n milliseconds = Math.abs(milliseconds);\n\n const units = {\n year: years,\n month: months,\n day: days,\n hour: hours,\n minute: minutes,\n second: seconds,\n millisecond: milliseconds,\n };\n\n const formattedDuration = Object.entries(units)\n .filter(([key, val]) => val !== 0)\n .map(([key, val]) => `${val} ${key}${val > 1 ? 's' : ''}`)\n .join(', ');\n\n return formattedDuration;\n};\n\nexport const formatDistance = (\n dirtyDate: Date,\n dirtyBaseDate: Date\n): string => {\n let { minutes } = getDateTimeInstanceFromDate(dirtyDate).diff(\n getDateTimeInstanceFromDate(dirtyBaseDate),\n ['minutes']\n );\n\n minutes = Math.abs(Math.round(minutes));\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (minutes === 0) {\n return formatDistanceToString('lessThanXMinutes', 1);\n } else {\n return formatDistanceToString('xMinutes', minutes);\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return formatDistanceToString('xMinutes', minutes);\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return formatDistanceToString('aboutXHours', 1);\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n const hours = Math.round(minutes / 60);\n return formatDistanceToString('aboutXHours', hours);\n\n // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return formatDistanceToString('xDays', 1);\n\n // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n const days = Math.round(minutes / MINUTES_IN_DAY);\n return formatDistanceToString('xDays', days);\n\n // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n const months = Math.round(minutes / MINUTES_IN_MONTH);\n return formatDistanceToString('aboutXMonths', months);\n }\n let { months } = getDateTimeInstanceFromDate(dirtyDate).diff(\n getDateTimeInstanceFromDate(dirtyBaseDate),\n ['months']\n );\n\n months = Math.abs(Math.round(months));\n\n // 2 months up to 12 months\n if (months < 12) {\n const nearestMonth = Math.abs(Math.round(minutes / MINUTES_IN_MONTH));\n\n return formatDistanceToString('xMonths', nearestMonth);\n\n // 1 year up to max Date\n } else {\n const monthsSinceStartOfYear = months % 12;\n const years = Math.floor(months / 12);\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return formatDistanceToString('aboutXYears', years);\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return formatDistanceToString('overXYears', years);\n\n // N years 9 months up to N year 12 months\n } else {\n return formatDistanceToString('almostXYears', years + 1);\n }\n }\n};\n\nconst curriedFormatDistance = curry(formatDistance);\n\nexport const formatDistanceToNow = curriedFormatDistance(new Date(Date.now()));\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n */\nconst debounce = <F extends (...args: any[]) => any>(\n func: F,\n waitFor: number,\n immediate = false\n): any => {\n let timeout: NodeJS.Timeout | null;\n return (...args: Parameters<F>): any => {\n const later = function (): void {\n timeout = null;\n if (!immediate) {\n func(...args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout as NodeJS.Timeout);\n timeout = setTimeout(later, waitFor);\n if (callNow) {\n func(...args);\n }\n };\n};\n\nexport default debounce;\n","import debounce from './debounce';\n\nexport default debounce;\n","export interface EventSubscription {\n // Unsubscribes from an event to prevent memory leaks\n unsubscribe: () => void;\n}\n\nexport enum EventTypes {\n CHANGE_THEME,\n TOGGLE_MAIN_SIDEBAR,\n TOGGLE_ARRAY_VERSION_SIDEBAR,\n TOGGLE_WORKSPACE_MENU,\n LAUNCHED_NOTEBOOK,\n ADDED_ASSET,\n LOGOUT,\n}\n\nclass EventBus {\n // store any events as keys\n private eventListeners: { [event: string]: Function[] } = {};\n\n /**\n * Subscribe to an event\n * Always unsubscribe on unmount to prevent memory leaks!\n */\n public on(event: EventTypes, func: Function): EventSubscription {\n if (!EventTypes[event]) {\n throw new Error(\n `Event \\`${event}\\` does not exist in types. Use a valid event type or add \\`${event}\\` to eventBus's types and use the variable.`\n );\n }\n\n const eventsFound = this.eventListeners[event] || [];\n eventsFound.push(func);\n this.eventListeners[event] = eventsFound;\n\n return {\n // Unsubscribes from an event to prevent memory leaks\n unsubscribe: (): void => {\n const events = this.eventListeners[event];\n this.eventListeners[event] = events.filter((f: Function): boolean => {\n return f !== func;\n });\n },\n };\n }\n\n public emit(event: EventTypes, data?: any): void {\n const events = this.eventListeners[event];\n if (!events) {\n return;\n }\n events.forEach((func: any) => {\n func(data);\n });\n }\n}\n\nconst eventBus = new EventBus();\n\nexport default eventBus;\n","import eventBus from './eventBus';\n\nexport * from './eventBus';\nexport default eventBus;\n","// Taken from https://dev.to/pranay_rauthu/uuid-in-javascript-obc\n\n/**\n * Returns a unique id string\n */\nconst generateUniqueId = () => {\n const firstItem: any = {\n value: '0',\n };\n /*length can be increased for lists with more items.*/\n let counter = '123456789'.split('').reduce((acc, curValue, curIndex, arr) => {\n const curObj: any = {};\n curObj.value = curValue;\n curObj.prev = acc;\n\n return curObj;\n }, firstItem);\n firstItem.prev = counter;\n\n return function () {\n let now: any = Date.now();\n if (\n typeof performance === 'object' &&\n typeof performance.now === 'function'\n ) {\n now = performance.now().toString().replace('.', '');\n }\n counter = counter.prev;\n return `${now}${Math.random().toString(16).substring(2)}${counter.value}`;\n };\n};\n\nexport default generateUniqueId();\n","import generateUniqueId from './generateUniqueId';\n\nexport default generateUniqueId;\n","import { AssetType } from 'api-client';\n\nconst getAssetTypeName = (assetType: AssetType) => {\n switch (assetType) {\n case AssetType.Array:\n return 'array';\n case AssetType.Notebook:\n return 'notebook';\n case AssetType.UserDefinedFunction:\n return 'UDF';\n case AssetType.Dashboard:\n return 'dashboard';\n case AssetType.MlModel:\n return 'ML model';\n case AssetType.File:\n return 'file';\n case AssetType.Group:\n return 'group';\n case AssetType.RegisteredTaskGraph:\n return 'task graph';\n case AssetType.Bioimg:\n return 'biomedical imaging';\n case AssetType.Vcf:\n return 'VCF';\n case AssetType.Soma:\n return 'SOMA';\n case AssetType.Pointcloud:\n return 'point cloud';\n case AssetType.Geometry:\n return 'geometry';\n case AssetType.Raster:\n return 'raster';\n case AssetType.VectorSearch:\n return 'vector search';\n }\n};\n\nexport default getAssetTypeName;\n","import getAssetTypeName from './getAssetTypeName';\n\nexport default getAssetTypeName;\n","import supportedRegions from 'utils/constants/supportedRegions';\n\nconst getJupyterURL = (region?: string) => {\n if (!region) {\n return global.JUPYTERHUB_URL;\n }\n\n if (!supportedRegions[region]) {\n return global.JUPYTERHUB_URL;\n }\n\n return supportedRegions[region];\n};\n\nexport default getJupyterURL;\n","import getJupyterURL from './getJupyterURL';\n\nexport default getJupyterURL;\n","import { equals } from 'ramda';\nimport { matchPath } from 'react-router-dom';\nimport {\n arrayRouterPaths,\n fileRouterPaths,\n notebookRouterPaths,\n biomedicalImagingRouterPaths,\n udfRouterPaths,\n vectorSearchRouterPaths,\n vcfRouterPaths,\n somaRouterPaths,\n groupRouterPaths,\n geometryRouterPaths,\n mlModelRouterPaths,\n rasterRouterPaths,\n pointCloudRouterPaths,\n dashboardRouterPaths,\n} from 'utils/routerPaths';\n\nconst rootPaths = [\n arrayRouterPaths.details,\n notebookRouterPaths.details,\n fileRouterPaths.details,\n somaRouterPaths.details,\n biomedicalImagingRouterPaths.details,\n udfRouterPaths.details,\n groupRouterPaths.details,\n vcfRouterPaths.details,\n vectorSearchRouterPaths.details,\n mlModelRouterPaths.details,\n geometryRouterPaths.details,\n pointCloudRouterPaths.details,\n rasterRouterPaths.details,\n dashboardRouterPaths.details,\n];\n\ninterface AssetParams {\n namespace: string;\n arrayId?: string;\n groupId?: string;\n}\n\n/**\n * Function that checks if two pathnames belong to the same level.\n * This is the case with Asset Details, under Asset details there are many sub-pages.\n * e.g. /arrays/details/TileDB/array-1/overview & /arrays/details/TileDB/array-1/settings\n */\nconst arePathnamesInSameLevel = (\n pathname1: string | undefined,\n pathname2: string | undefined\n) => {\n if (!pathname1 || !pathname2) {\n return false;\n }\n\n if (pathname1 === pathname2) {\n return true;\n }\n\n const found = rootPaths.some((rootpath) => {\n const matches = matchPath<AssetParams>(pathname1, {\n path: rootpath,\n exact: false,\n });\n\n if (!!matches) {\n const matchesSecondPathname = matchPath<AssetParams>(pathname2, {\n path: rootpath,\n exact: false,\n });\n\n return equals(matches.params, matchesSecondPathname?.params);\n }\n return false;\n });\n\n return found;\n};\n\nexport default arePathnamesInSameLevel;\n","import arePathnamesInSameLevel from './arePathnamesInSameLevel';\n\nexport default arePathnamesInSameLevel;\n","import {\n History,\n Location,\n LocationDescriptor,\n createBrowserHistory,\n} from 'history';\nimport toggleMainSidebar from '../toggleMainSidebar';\nimport prependBasePath from 'utils/helpers/prependBasePath';\nimport useHistoryStore, {\n peekNItemInNavigationSelector,\n} from 'store/HistoryStack';\nimport pushPathnameToToHistoryStack from './pushPathnameToToHistoryStack';\nimport arePathnamesInSameLevel from 'store/HistoryStack/arePathnamesInSameLevel';\nimport { authLinks, oauth2Links } from 'utils/links';\nimport sessionStorageKeys from 'utils/constants/sessionStorageKeys';\n\ntype CustomHistory = History<unknown> & {\n pushWithSameKeyAsNItem: (n: number) => void;\n};\n\ntype LocationWithKey = Location<{ key?: string }>;\n\n// Prepend BASE_PATH to support serving the UI from a subpath i.e. /ui (for enterprise)\nconst customHistory = createBrowserHistory({\n basename: prependBasePath(''),\n});\n\n/**\n * Replace history's behavior to prevent multiple pushes of the same page.\n * https://github.com/ReactTraining/history/issues/470\n */\nconst prevHistoryPush = customHistory.push;\nlet lastLocation = customHistory.location;\nlet lastPath: string;\n\ncustomHistory.listen((location, action) => {\n lastLocation = location;\n updateRedirectToAfterLogin(location.pathname, location.search);\n\n if (action === 'PUSH') {\n const locationKey =\n (location as LocationWithKey)?.state.key || location.key;\n\n pushPathnameToToHistoryStack(location.pathname, {\n key: locationKey,\n search: location.search,\n });\n }\n\n if (action === 'POP') {\n /**\n * HANDLE Browser history\n * User goes back/forward using browser history,\n */\n const secondToLastItem = useHistoryStore.getState().peek(2);\n const lastItemInStack = useHistoryStore.getState().peek(1);\n if (useHistoryStore.getState().peek(1)?.key === location.key) {\n /**\n * Case goBack from browser history\n */\n } else if (\n secondToLastItem?.key === location.key ||\n arePathnamesInSameLevel(secondToLastItem?.pathname, location.pathname)\n ) {\n useHistoryStore.getState().goBack(1);\n } else if (\n arePathnamesInSameLevel(lastItemInStack?.pathname, location.pathname)\n ) {\n // NOOP\n /**\n * Case browser history \"goForward\"\n */\n } else {\n pushPathnameToToHistoryStack(location.pathname + location.search, {\n key: location.key,\n exact: false,\n });\n }\n }\n\n if (location.pathname !== lastPath) {\n // hide sidebars on route change\n toggleMainSidebar(false);\n }\n\n lastPath = location.pathname;\n});\n\ntype LocationType = LocationDescriptor & { pathname: string };\n\ncustomHistory.push = (\n location: LocationType | string,\n state: { [k: string]: string } = {}\n): void => {\n if (\n lastLocation === null ||\n location !==\n lastLocation.pathname + lastLocation.search + lastLocation.hash ||\n JSON.stringify(state) !== JSON.stringify(lastLocation.state)\n ) {\n prevHistoryPush(location, state);\n }\n};\n\n(customHistory as CustomHistory).pushWithSameKeyAsNItem = (n = 1) => {\n const item = peekNItemInNavigationSelector(useHistoryStore.getState(), n);\n\n customHistory.push({\n pathname: item?.pathname,\n key: item?.key,\n search: item.search,\n state: { key: item?.key },\n });\n};\n\n// Saves the pathname to the session storage as the last path visited (auth routes excluded)\n// This value will be retrieved on a successful login to redirect the user to that path\nexport function updateRedirectToAfterLogin(pathname: string, search: string) {\n // Some routes should not be cached for redirect\n // i.e. authentication routes\n const excludedPaths = [\n authLinks.root(),\n oauth2Links.root(),\n authLinks.logout(),\n '/sso',\n ];\n if (excludedPaths.some((path) => pathname.startsWith(path))) {\n // Do nothing if the path starts with one of the excluded paths\n // i.e. /auth or /sso\n return;\n }\n\n // Set path to session storage\n sessionStorage.setItem(\n sessionStorageKeys.REDIRECT_TO_AFTER_LOGIN,\n pathname + search\n );\n}\n\nexport default customHistory as CustomHistory;\n","import history from './history';\n\nexport default history;\n","import { ArrayInfo } from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { createPath as createGetArrayInfoQueryKey } from 'hooks/api/Arrays/useGetArray';\nimport queryClient from 'utils/helpers/queryClient';\n\ntype Params = Pick<ArrayInfo, 'id' | 'namespace'>;\n\nconst getArrayInfoFromCache = (params: Params): ArrayInfo | undefined => {\n const { id, namespace } = params;\n const queryKey = createGetArrayInfoQueryKey({\n namespace,\n array: id,\n });\n\n const res = queryClient\n .getQueryCache()\n .find<unknown, unknown, AxiosResponse<ArrayInfo>>([queryKey], {\n exact: false,\n });\n\n return res?.state.data?.data;\n};\n\nexport default getArrayInfoFromCache;\n","import getArrayInfoFromCache from './getArrayInfoFromCache';\n\nexport default getArrayInfoFromCache;\n","import { GroupInfo } from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { createPath as createGetGroupQueryKey } from 'hooks/api/Groups/useGetGroup';\nimport queryClient from 'utils/helpers/queryClient';\n\ntype Params = Pick<GroupInfo, 'id' | 'namespace'>;\n\nconst getGroupInfoFromCache = (params: Params): GroupInfo | undefined => {\n const { id, namespace } = params;\n const queryKey = createGetGroupQueryKey({\n groupNamespace: namespace,\n groupName: id,\n });\n\n const res = queryClient\n .getQueryCache()\n .find<unknown, unknown, AxiosResponse<GroupInfo>>([queryKey], {\n exact: false,\n });\n\n return res?.state.data?.data;\n};\n\nexport default getGroupInfoFromCache;\n","import getGroupInfoFromCache from './getGroupInfoFromCache';\n\nexport default getGroupInfoFromCache;\n","import { TaskGraphLog } from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { createPath as createGetTaskGraphLogQueryKey } from 'hooks/api/Tasks/useGetTaskGraphDetails';\nimport queryClient from 'utils/helpers/queryClient';\n\ntype Params = {\n id: string;\n namespace: string;\n};\n\nconst getTaskGraphLogFromCache = (params: Params): TaskGraphLog | undefined => {\n const { id, namespace } = params;\n const queryKey = createGetTaskGraphLogQueryKey({\n id,\n namespace,\n });\n\n const res = queryClient\n .getQueryCache()\n .find<unknown, unknown, AxiosResponse<TaskGraphLog>>([queryKey], {\n exact: false,\n });\n\n return res?.state.data?.data;\n};\n\nexport default getTaskGraphLogFromCache;\n","import getTaskGraphLogFromCache from './getTaskGraphLogFromCache';\n\nexport default getTaskGraphLogFromCache;\n","import { ArrayTask } from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { createPath as createGetTaskQueryKey } from 'hooks/api/Tasks/useGetTaskDetails';\nimport queryClient from 'utils/helpers/queryClient';\n\ntype Params = Pick<ArrayTask, 'id'>;\n\nconst getArrayTaskFromCache = (params: Params): ArrayTask | undefined => {\n const { id } = params;\n const queryKey = createGetTaskQueryKey({\n id,\n });\n\n const res = queryClient\n .getQueryCache()\n .find<unknown, unknown, AxiosResponse<ArrayTask>>([queryKey], {\n exact: false,\n });\n\n return res?.state.data?.data;\n};\n\nexport default getArrayTaskFromCache;\n","import getArrayTaskFromCache from './getArrayTaskFromCache';\n\nexport default getArrayTaskFromCache;\n","type PollOptions = {\n /**\n * The interval between polls in milliseconds.\n */\n interval?: number;\n /**\n * A predicate function that determines if the polled value satisfies the condition.\n * Defaults to always returning true.\n */\n condition?: (value: any) => boolean;\n /**\n * The maximum time to poll in milliseconds before rejecting.\n * Defaults to infinity (no timeout).\n */\n timeout?: number;\n};\n\nasync function polling<T>(fn: () => T, options: PollOptions = {}): Promise<T> {\n const {\n interval = 1000,\n condition = (v: any) => Boolean(v),\n timeout = Infinity,\n } = options;\n\n const startTime = Date.now();\n\n while (true) {\n const value = fn();\n\n if (condition(value)) {\n return value;\n }\n\n if (Date.now() - startTime > timeout) {\n throw new Error(`Polling timed out after ${timeout} milliseconds`);\n }\n\n await new Promise((resolve) => setTimeout(resolve, interval));\n }\n}\n\nexport default polling;\n","import polling from './polling';\n\nexport default polling;\n","const stripSearchParamsFromPathName = (pathname: string) => {\n const baseURL = 'https://do-not-return-base-url.com'; // As base path could be anything, as long as it's valid.\n const url = new URL(pathname, baseURL);\n\n return {\n pathname: url.pathname,\n searchParams: url.searchParams,\n };\n};\n\nexport default stripSearchParamsFromPathName;\n","import stripSearchParamsFromPathName from './stripSearchParamsFromPathName';\n\nexport default stripSearchParamsFromPathName;\n","import { AssetType } from 'api-client';\n\nconst getAssetTitleForBrowsers = (asset?: AssetType) => {\n if (asset === AssetType.Array) {\n return 'Arrays';\n } else if (asset === AssetType.File) {\n return 'Files';\n } else if (asset === AssetType.Bioimg) {\n return 'Biomedical Imaging';\n } else if (asset === AssetType.Dashboard) {\n return 'Dashboards';\n } else if (asset === AssetType.Geometry) {\n return 'Geometries';\n } else if (asset === AssetType.Group) {\n return 'Groups';\n } else if (asset === AssetType.MlModel) {\n return 'ML models';\n } else if (asset === AssetType.Notebook) {\n return 'Notebooks';\n } else if (asset === AssetType.Pointcloud) {\n return 'Point cloud';\n } else if (asset === AssetType.Raster) {\n return 'Raster images';\n } else if (asset === AssetType.RegisteredTaskGraph) {\n return 'Taskgraphs';\n } else if (asset === AssetType.Soma) {\n return 'SOMA';\n } else if (asset === AssetType.UserDefinedFunction) {\n return 'UDFs';\n } else if (asset === AssetType.Vcf) {\n return 'VCFs';\n } else if (asset === AssetType.VectorSearch) {\n return 'Vector search';\n }\n};\n\nexport default getAssetTitleForBrowsers;\n","import getAssetTitleForBrowsers from './getAssetTitleForBrowsers';\n\nexport default getAssetTitleForBrowsers;\n","import { match, matchPath } from 'react-router-dom';\nimport {\n activityRouterPaths,\n arrayRouterPaths,\n assetsRouterPaths,\n monitorRouterPaths,\n fileRouterPaths,\n marketplaceRouterPaths,\n mlModelRouterPaths,\n notebookRouterPaths,\n overviewRouterPaths,\n settingsRouterPaths,\n taskgraphLogsRouterPaths,\n udfRouterPaths,\n dashboardRouterPaths,\n} from 'utils/routerPaths';\nimport getArrayInfoFromCache from 'utils/helpers/cache/getArrayInfoFromCache';\nimport getGroupInfoFromCache from 'utils/helpers/cache/getGroupInfoFromCache';\nimport groupRouterPaths from 'utils/routerPaths/groupRouterPaths';\nimport vcfRouterPaths from 'utils/routerPaths/vcfRouterPaths';\nimport somaRouterPaths from 'utils/routerPaths/somaRouterPaths';\nimport biomedicalImagingRouterPaths from 'utils/routerPaths/biomedicalImagingRouterPaths';\nimport geometryRouterPaths from 'utils/routerPaths/geometryRouterPaths';\nimport rasterRouterPaths from 'utils/routerPaths/rasterRouterPaths';\nimport vectorSearchRouterPaths from 'utils/routerPaths/vectorSearchRouterPaths';\nimport tasksRouterPaths from 'utils/routerPaths/tasksRouterPaths';\nimport getTaskGraphLogFromCache from 'utils/helpers/cache/getTaskGraphLogFromCache';\nimport getArrayTaskFromCache from 'utils/helpers/cache/getArrayTaskFromCache';\nimport polling from 'utils/helpers/polling';\nimport academyRouterPaths from 'utils/routerPaths/academyRouterPaths';\nimport stripSearchParamsFromPathName from '../stripSearchParamsFromPathName';\nimport { AssetType } from 'api-client';\nimport getAssetTitleForBrowsers from '../getAssetTitleForBrowsers';\nimport { rootPath } from 'utils/links';\nimport appsRouterPaths from 'utils/routerPaths/appsRouterPaths';\n\ninterface ArrayAssetParams {\n namespace: string;\n arrayId: string;\n}\n\ninterface LaunchNotebookParams {\n id?: string;\n name?: string;\n namespace?: string;\n}\n\ninterface GroupAssetParams {\n namespace: string;\n groupId: string;\n}\n\ninterface TaskGraphLogParams {\n taskGraphId: string;\n namespace: string;\n}\n\ninterface ArrayTaskParams {\n taskId: string;\n}\n\ninterface ActivityDetailsParams {\n activityId: string;\n}\n\nconst wrapValueInPromise = <T>(value: T): Promise<T> => Promise.resolve(value);\nconst getAppsTitle = (\n matches: match<LaunchNotebookParams>,\n searchParams: URLSearchParams\n) => wrapValueInPromise(`Apps`);\nconst getOverviewTitle = (matches: match<any>, searchParams: URLSearchParams) =>\n wrapValueInPromise('Overview');\nconst getComputeTitle = (matches: match<any>, searchParams: URLSearchParams) =>\n wrapValueInPromise('Monitor');\nconst getTasksTitle = (matches: match<any>, searchParams: URLSearchParams) =>\n wrapValueInPromise('Logs • Tasks');\nconst getTaskgraphLogsTitle = (\n matches: match<any>,\n searchParams: URLSearchParams\n) => wrapValueInPromise('Logs • Task graphs');\nconst getAssetsTitle =\n (asset?: AssetType, defaultTile = 'Assets') =>\n (matches: match<any>) => {\n if (!asset) {\n return wrapValueInPromise(defaultTile);\n }\n const assetTitle = getAssetTitleForBrowsers(asset);\n\n if (assetTitle) {\n return wrapValueInPromise(assetTitle);\n }\n\n return wrapValueInPromise(defaultTile);\n };\nconst getAcademyTitle = (matches: match<any>, searchParams: URLSearchParams) =>\n wrapValueInPromise('Academy');\n\nconst getMarketplaceTitle = (\n matches: match<any>,\n searchParams: URLSearchParams\n) => wrapValueInPromise(`Marketplace`);\n\nconst getSettingsTitle = (matches: match<any>, searchParams: URLSearchParams) =>\n wrapValueInPromise('Settings');\nconst getArrayAssetTitle = async (\n matches: match<ArrayAssetParams>,\n searchParams: URLSearchParams\n) => {\n const { params } = matches;\n const { arrayId, namespace } = params;\n\n const arrayInfo = await polling(\n () =>\n getArrayInfoFromCache({\n id: arrayId,\n namespace,\n }),\n { interval: 300, timeout: 10_000 }\n );\n\n return arrayInfo?.name || '';\n};\n\nconst getGroupAssetTitle = async (\n matches: match<GroupAssetParams>,\n searchParams: URLSearchParams\n) => {\n const { params } = matches;\n const { groupId, namespace } = params;\n\n const groupInfo = await polling(\n () =>\n getGroupInfoFromCache({\n id: groupId,\n namespace,\n }),\n { interval: 300, timeout: 10_000 }\n );\n\n return groupInfo?.name || '';\n};\n\nconst getTaskGraphLogTitle = async (\n matches: match<TaskGraphLogParams>,\n searchParams: URLSearchParams\n) => {\n const { params } = matches;\n const { taskGraphId, namespace } = params;\n\n const taskgraphLog = await polling(\n () =>\n getTaskGraphLogFromCache({\n id: taskGraphId,\n namespace,\n }),\n {\n interval: 300,\n timeout: 10_000,\n }\n );\n\n return taskgraphLog?.name || taskGraphId;\n};\n\nconst getArrayTaskTitle = async (\n matches: match<ArrayTaskParams>,\n searchParams: URLSearchParams\n) => {\n const { params } = matches;\n const { taskId } = params;\n\n const taskgraphLog = await polling(\n () =>\n getArrayTaskFromCache({\n id: taskId,\n }),\n {\n interval: 300,\n timeout: 10_000,\n }\n );\n\n return taskgraphLog?.name || '';\n};\n\nconst getActivityDetailsTitle = async (\n matches: match<ActivityDetailsParams>,\n searchParams: URLSearchParams\n) => {\n const { params } = matches;\n const { activityId } = params;\n\n return activityId;\n};\n\ntype Handler = (\n matches: match<any>,\n searchParams: URLSearchParams\n) => Promise<string>;\n\nconst rules: Record<string, Handler> = {\n [overviewRouterPaths.root]: getOverviewTitle,\n [assetsRouterPaths.arrays]: getAssetsTitle(AssetType.Array),\n [assetsRouterPaths.files]: getAssetsTitle(AssetType.File),\n [assetsRouterPaths.biomedicalImaging]: getAssetsTitle(AssetType.Bioimg),\n [assetsRouterPaths.dashboards]: getAssetsTitle(AssetType.Dashboard),\n [assetsRouterPaths.geometry]: getAssetsTitle(AssetType.Geometry),\n [assetsRouterPaths.groups]: getAssetsTitle(AssetType.Group),\n [assetsRouterPaths.mlModels]: getAssetsTitle(AssetType.MlModel),\n [assetsRouterPaths.notebooks]: getAssetsTitle(AssetType.Notebook),\n [assetsRouterPaths.pointCloud]: getAssetsTitle(AssetType.Pointcloud),\n [assetsRouterPaths.raster]: getAssetsTitle(AssetType.Raster),\n [assetsRouterPaths.soma]: getAssetsTitle(AssetType.Soma),\n [assetsRouterPaths.data]: getAssetsTitle(undefined, 'Data'),\n [assetsRouterPaths.code]: getAssetsTitle(undefined, 'Code'),\n [assetsRouterPaths.taskGraphs]: getAssetsTitle(AssetType.RegisteredTaskGraph),\n [assetsRouterPaths.udfs]: getAssetsTitle(AssetType.UserDefinedFunction),\n [assetsRouterPaths.vcf]: getAssetsTitle(AssetType.Vcf),\n [assetsRouterPaths.vector]: getAssetsTitle(AssetType.VectorSearch),\n [assetsRouterPaths.root]: getAssetsTitle(undefined, 'Data'),\n [monitorRouterPaths.taskGraphLogs]: getTaskgraphLogsTitle,\n [monitorRouterPaths.logs]: getTasksTitle,\n [monitorRouterPaths.tasks]: getTasksTitle,\n [monitorRouterPaths.root]: getComputeTitle,\n [marketplaceRouterPaths.root]: getMarketplaceTitle,\n [settingsRouterPaths.root]: getSettingsTitle,\n [arrayRouterPaths.details]: getArrayAssetTitle,\n [fileRouterPaths.details]: getArrayAssetTitle,\n [notebookRouterPaths.details]: getArrayAssetTitle,\n [dashboardRouterPaths.details]: getArrayAssetTitle,\n [udfRouterPaths.details]: getArrayAssetTitle,\n [groupRouterPaths.details]: getGroupAssetTitle,\n [vcfRouterPaths.details]: getGroupAssetTitle,\n [somaRouterPaths.details]: getGroupAssetTitle,\n [biomedicalImagingRouterPaths.details]: getGroupAssetTitle,\n [geometryRouterPaths.details]: getGroupAssetTitle,\n [rasterRouterPaths.details]: getGroupAssetTitle,\n [vectorSearchRouterPaths.details]: getGroupAssetTitle,\n [mlModelRouterPaths.details]: getArrayAssetTitle,\n [taskgraphLogsRouterPaths.details]: getTaskGraphLogTitle,\n [tasksRouterPaths.taskDetails]: getArrayTaskTitle,\n [academyRouterPaths.root]: getAcademyTitle,\n [activityRouterPaths.activityDetails]: getActivityDetailsTitle,\n [appsRouterPaths.root]: getAppsTitle,\n [rootPath]: getOverviewTitle,\n};\n\nconst shouldCheckExactResult = (pathname: string): boolean => {\n if (pathname.startsWith(monitorRouterPaths.root)) {\n return false;\n }\n\n if (pathname.startsWith(settingsRouterPaths.root)) {\n return false;\n }\n\n if (pathname.startsWith(appsRouterPaths.root)) {\n return false;\n }\n\n return true;\n};\n\ntype Options = {\n exact?: boolean;\n};\n\nconst getTitleBasedOnPathname = (pathname: string, options?: Options) => {\n const { pathname: pathWithoutSearchParams, searchParams } =\n stripSearchParamsFromPathName(pathname);\n\n const exact = options?.exact ?? shouldCheckExactResult(pathname);\n\n const rulesArray = Object.entries(rules);\n for (const [path, handler] of rulesArray) {\n const matches = matchPath(pathWithoutSearchParams, {\n path,\n exact,\n });\n if (matches) {\n return handler(matches, searchParams);\n }\n }\n};\n\nexport default getTitleBasedOnPathname;\n","import getTitleBasedOnPathname from './getTitleBasedOnPathname';\n\nexport default getTitleBasedOnPathname;\n","import { matchPath } from 'react-router';\nimport {\n assetsRouterPaths,\n monitorRouterPaths,\n marketplaceRouterPaths,\n overviewRouterPaths,\n settingsRouterPaths,\n appsRouterPaths,\n} from 'utils/routerPaths';\nimport academyRouterPaths from 'utils/routerPaths/academyRouterPaths';\nimport stripSearchParamsFromPathName from '../stripSearchParamsFromPathName';\n\nconst rootPathnames = [\n assetsRouterPaths.root,\n overviewRouterPaths.root,\n monitorRouterPaths.root,\n academyRouterPaths.root,\n settingsRouterPaths.root,\n marketplaceRouterPaths.root,\n appsRouterPaths.root,\n];\n\n/**\n * Helper function that returns true, if the pathname is root.\n * Root pages we consider that are a starting point of a navigation.\n * e.g. Assets routes (a user goes to assets and then starts navigating to some asset's details).\n */\nconst isPathnameRoot = (pathname: string): boolean => {\n const { pathname: pathWithoutSearchParams } =\n stripSearchParamsFromPathName(pathname);\n\n const matches = matchPath(pathWithoutSearchParams, {\n path: rootPathnames,\n });\n\n return !!matches;\n};\n\nexport default isPathnameRoot;\n","import isPathnameRoot from './isPathnameRoot';\n\nexport default isPathnameRoot;\n","import generateUniqueId from 'utils/helpers/generateUniqueId';\nimport getTitleBasedOnPathname from '../getTitleBasedOnPathname';\nimport isPathnameRoot from '../isPathnameRoot';\n\ninterface props {\n pathName: string;\n /**\n * Setting exact: false, will return title for pathnames that are not \"root\"\n * Normally we have rules for Asset details pages, only for root pages. e.g. /arrays/TileDB-Inc/array-1\n * With exact: false we'll get title for sub-pages as well. e.g. /arrays/TileDB-Inc/array-1/overview\n */\n key?: string;\n exact?: boolean;\n search?: string;\n}\n\nclass HistoryItem {\n public title: string | undefined;\n public pathname: string;\n public hasTitle: boolean;\n public isRoot: boolean;\n public key: string;\n public search?: string;\n /**\n * Not all pathnames have rules to get title.\n */\n public getTitle: Promise<string> | undefined;\n\n constructor(props: props) {\n const { pathName, exact, key, search } = props;\n const options = {\n exact: exact ?? undefined,\n };\n const getTitlePromise = getTitleBasedOnPathname(pathName, options);\n\n this.key = key ?? generateUniqueId();\n this.hasTitle = !!getTitlePromise;\n this.pathname = pathName;\n this.getTitle = getTitlePromise;\n this.isRoot = isPathnameRoot(pathName);\n this.search = search;\n\n getTitlePromise?.then((title) => {\n this.title = title;\n });\n }\n}\n\nexport default HistoryItem;\n","import HistoryItem from './HistoryItem';\n\nexport default HistoryItem;\n","import pushPathnameToToHistoryStack from './pushPathnameToToHistoryStack';\n\nexport default pushPathnameToToHistoryStack;\n","import useHistoryStore from 'store/HistoryStack';\nimport HistoryItem from 'store/HistoryStack/HistoryItem';\n\ninterface Options {\n exact?: boolean;\n key?: string;\n search?: string;\n}\n\nconst pushPathnameToToHistoryStack = (pathname: string, opts?: Options) => {\n const exact = opts?.exact;\n const key = opts?.key;\n const historyItem = new HistoryItem({\n pathName: pathname,\n exact: exact ?? undefined,\n search: opts?.search,\n key: key,\n });\n\n if (historyItem.hasTitle) {\n useHistoryStore.getState().push(historyItem);\n }\n};\n\nexport default pushPathnameToToHistoryStack;\n","import { AxiosError } from 'axios';\n\nconst isAxiosError = (err: unknown): err is AxiosError => {\n return Boolean(err && (err as AxiosError).isAxiosError);\n};\n\nexport default isAxiosError;\n","import isAxiosError from './isAxiosError';\n\nexport default isAxiosError;\n","/**\n * Returns true if running in enterprise env\n */\nconst isEnterpriseEnv = (): boolean => {\n return process.env.REACT_APP_ENTERPRISE === 'true';\n};\n\nexport default isEnterpriseEnv;\n","import isEnterpriseEnv from './isEnterpriseEnv';\n\nexport default isEnterpriseEnv;\n","function isObject(val: any): val is {} {\n return typeof val === 'object' && !Array.isArray(val);\n}\n\nexport default isObject;\n","import isObject from './isObject';\n\nexport default isObject;\n","const isStorageSupported = (\n webStorageType: 'localStorage' | 'sessionStorage' = 'localStorage'\n): boolean => {\n let storage: Storage | undefined;\n try {\n storage = window[webStorageType];\n if (!storage) {\n return false;\n }\n const x = `__storage_test__`;\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (err) {\n return false;\n }\n};\n\nexport default isStorageSupported;\n","import isStorageSupported from './isStorageSupported';\n\nexport default isStorageSupported;\n","import React, { ComponentType } from 'react';\nimport sessionStorageKeys from 'utils/constants/sessionStorageKeys';\nimport isStorageSupported from '../isStorageSupported';\nimport ChunkLoadError from 'utils/errors/ChunkLoadError';\n\nconst importOrReload = (\n componentImport: any\n): Promise<{ default: ComponentType<any> }> => {\n return new Promise((resolve, reject) => {\n let hasRefreshed = false;\n const canWriteToSessionStorage = isStorageSupported('sessionStorage');\n if (canWriteToSessionStorage) {\n // check if the window has already been refreshed\n hasRefreshed = JSON.parse(\n window.sessionStorage.getItem(sessionStorageKeys.LAZY_LOAD_REFRESHED) ||\n 'false'\n );\n }\n // try to import the component\n componentImport()\n .then((component: any) => {\n if (canWriteToSessionStorage) {\n window.sessionStorage.setItem(\n sessionStorageKeys.LAZY_LOAD_REFRESHED,\n 'false'\n ); // success so reset the refresh\n }\n resolve(component);\n })\n .catch((error: any) => {\n if (!isStorageSupported('sessionStorage')) {\n // Throw chunk load error if session storage is disabled\n throw new ChunkLoadError();\n } else {\n // If session storage is enabled set refreshed to true and reload page\n if (!hasRefreshed) {\n // not been refreshed yet\n window.sessionStorage.setItem(\n sessionStorageKeys.LAZY_LOAD_REFRESHED,\n 'true'\n );\n\n // we are now going to refresh\n window.location.reload();\n } else {\n // Default error behaviour\n reject(error);\n }\n }\n });\n });\n};\n\n// a function to retry loading a chunk to avoid chunk load error for out of date code\nconst lazyLoadComponent = (c: () => Promise<any>) =>\n React.lazy(() => importOrReload(c));\n\nexport default lazyLoadComponent;\n","import lazyLoadComponent from './lazyLoadComponent';\n\nexport default lazyLoadComponent;\n","import configExists from '../configExists';\nimport getJupyterURL from '../getJupyterURL';\nimport supportedRegions from 'utils/constants/supportedRegions';\n\n/**\n * Renders an iframe to jupyterhub/hub/logout in order to logout user from jupyterhub\n */\nconst logoutJupyterHandler = (): void => {\n if (!configExists('JUPYTERHUB_URL')) {\n /**\n * Don't do anything if Jupyterhub url is not configured\n */\n return;\n }\n const regions = Object.keys(supportedRegions);\n\n if (!regions.length) {\n logoutFromRegion();\n return;\n }\n regions.forEach(logoutFromRegion);\n};\n\nconst logoutFromRegion = (region?: string) => {\n const jupyterHostURL = getJupyterURL(region);\n const logoutURL = `${jupyterHostURL}/hub/logout`;\n\n const iframe = document.createElement('iframe');\n\n iframe.src = logoutURL;\n iframe.height = '0';\n iframe.width = '0';\n iframe.style.position = 'absolute';\n document.body.append(iframe);\n};\n\nexport default logoutJupyterHandler;\n","import logoutJupyterHandler from './logoutJupyterHandler';\n\nexport default logoutJupyterHandler;\n","import logoutHandler from './logoutHandler';\n\nexport default logoutHandler;\n","import { resetJupyterStoreFromNonReactHook } from 'store/JupyterStore';\nimport { clearWorkspaceSelectedStore } from 'store/WorkspaceSelectedStore';\nimport eventBus, { EventTypes } from '../eventBus';\nimport logoutJupyterHandler from '../logoutJupyterHandler';\n\nconst logoutHandler = () => {\n resetJupyterStoreFromNonReactHook();\n logoutJupyterHandler();\n clearWorkspaceSelectedStore();\n eventBus.emit(EventTypes.LOGOUT);\n};\n\nexport default logoutHandler;\n","import { OrganizationRoles } from 'api-client';\nimport { isString } from 'utils/helpers/string';\n\nconst normalizeOrganizationRole = (role: OrganizationRoles): string => {\n if (!isString(role)) {\n return '';\n }\n\n if (role === OrganizationRoles.Admin) {\n return 'ADMIN';\n } else if (role === OrganizationRoles.ReadOnly) {\n return 'READ';\n } else if (role === OrganizationRoles.ReadWrite) {\n return 'READ + WRITE';\n } else if (role === OrganizationRoles.ReadWriteDelete) {\n return 'READ + WRITE + DELETE';\n } else if (role === OrganizationRoles.Owner) {\n return 'OWNER';\n }\n\n return '';\n};\n\nexport default normalizeOrganizationRole;\n","import normalizeOrganizationRole from './normalizeOrganizationRole';\n\nexport default normalizeOrganizationRole;\n","/**\n * Formats number to localeString\n */\nfunction formatNumber<T>(value: number | T, maxDecimals?: number): string | T {\n if (!value || isNaN(value as number)) {\n return value as T;\n }\n\n if (maxDecimals) {\n return Number(value).toLocaleString(undefined, {\n maximumFractionDigits: maxDecimals,\n });\n }\n\n return Number(value).toLocaleString();\n}\n\nexport default formatNumber;\n","import formatNumber from './formatNumber';\n\nexport default formatNumber;\n","import { divide, flip } from 'ramda';\n\nconst divideBy = flip(divide);\n\nexport default divideBy;\n","import divideBy from './divideBy';\n\nexport default divideBy;\n","import roundToNDecimals from './roundToNDecimals';\n\nexport default roundToNDecimals;\n","import { curry } from 'ramda';\n\nconst roundToNDecimals = (n: number, num: number): number =>\n Math.round((num + Number.EPSILON) * Math.pow(10, n)) / Math.pow(10, n);\n\nexport default curry(roundToNDecimals);\n","import { compose, defaultTo } from 'ramda';\nimport divideBy from '../divideBy';\nimport roundToNDecimals from '../roundToNDecimals';\n\nconst defaultToZero = defaultTo(0);\nconst divideBy1000 = divideBy(1000);\nconst COST_PER_CPU_PER_HOUR = 0.000016667;\nconst roundToTwoDecimals = roundToNDecimals(2);\nconst calculateNotebookCost = (\n uptime: number | undefined,\n millicpu: number | undefined\n): number =>\n COST_PER_CPU_PER_HOUR *\n defaultToZero(uptime) *\n divideBy1000(defaultToZero(millicpu));\n\nconst calculateNotebookCostRounded = compose(\n roundToTwoDecimals,\n calculateNotebookCost\n);\n\nexport default calculateNotebookCostRounded;\n","function isNumber(num: any): num is number {\n return typeof num === 'number';\n}\n\nexport default isNumber;\n","import isNumber from './isNumber';\n\nexport default isNumber;\n","/**\n * Function to prepend base path if specified\n * It solved a problem in development mode:\n * When running from the devserver, the {{ .BasePath }} in Document does not get replaced by an actual value like GO does\n * This function will tell if the global BASE_PATH is a valid path (starting with \"/\")\n */\nconst prependBasePath = (path: string) => {\n const basePath = global.BASE_PATH;\n\n return basePath.startsWith('/') ? basePath + path : path;\n};\n\nexport default prependBasePath;\n","import prependBasePath from './prependBasePath';\n\nexport default prependBasePath;\n","import { getAbortController, noop, replaceData, timeUntilStale } from './utils'\nimport { defaultLogger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport { canFetch, createRetryer, isCancelledError } from './retryer'\nimport { Removable } from './removable'\nimport type {\n CancelOptions,\n FetchStatus,\n InitialDataFunction,\n QueryFunctionContext,\n QueryKey,\n QueryMeta,\n QueryOptions,\n QueryStatus,\n SetDataOptions,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport type { Logger } from './logger'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n logger?: Logger\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = unknown> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: any\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal?: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: any\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: any\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n initialState: QueryState<TData, TError>\n revertState?: QueryState<TData, TError>\n state: QueryState<TData, TError>\n isFetchingOptimistic?: boolean\n\n private cache: QueryCache\n private logger: Logger\n private promise?: Promise<TData>\n private retryer?: Retryer<TData>\n private observers: QueryObserver<any, any, any, any, any>[]\n private defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n private abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.abortSignalConsumed = false\n this.defaultOptions = config.defaultOptions\n this.setOptions(config.options)\n this.observers = []\n this.cache = config.cache\n this.logger = config.logger || defaultLogger\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.initialState = config.state || getDefaultState(this.options)\n this.state = this.initialState\n this.scheduleGc()\n }\n\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n private setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.defaultOptions, ...options }\n\n this.updateCacheTime(this.options.cacheTime)\n }\n\n protected optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.promise\n this.retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.initialState)\n }\n\n isActive(): boolean {\n return this.observers.some((observer) => observer.options.enabled !== false)\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus())\n\n if (observer) {\n observer.refetch({ cancelRefetch: false })\n }\n\n // Continue fetch if currently paused\n this.retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect())\n\n if (observer) {\n observer.refetch({ cancelRefetch: false })\n }\n\n // Continue fetch if currently paused\n this.retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer)\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({ revert: true })\n } else {\n this.retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions,\n ): Promise<TData> {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn)\n if (observer) {\n this.setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n this.logger.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = getAbortController()\n\n // Create query function context\n const queryFnContext: QueryFunctionContext<TQueryKey> = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true\n return abortController.signal\n }\n return undefined\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\n `Missing queryFn for queryKey '${this.options.queryHash}'`,\n )\n }\n this.abortSignalConsumed = false\n return this.options.queryFn(queryFnContext)\n }\n\n // Trigger behavior hook\n const context: FetchContext<TQueryFnData, TError, TData, TQueryKey> = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(context)\n\n // Store state in case the current fetch needs to be reverted\n this.revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.cache.config.onError?.(error, this as Query<any, any, any, any>)\n this.cache.config.onSettled?.(\n this.state.data,\n error,\n this as Query<any, any, any, any>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.retryer = createRetryer({\n fn: context.fetchFn as () => TData,\n abort: abortController?.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error(`${this.queryHash} data is undefined`) as any)\n return\n }\n\n this.setData(data as TData)\n\n // Notify cache callback\n this.cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.cache.config.onSettled?.(\n data,\n this.state.error,\n this as Query<any, any, any, any>,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.promise = this.retryer.promise\n\n return this.promise\n }\n\n private dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState, fetchStatus: 'idle' }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate(action)\n })\n\n this.cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle',\n }\n}\n","import { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport { Query } from './query'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport type { QueryFilters } from './utils'\nimport type { Action, QueryState } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n","import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n","import { QueryClient } from '@tanstack/react-query';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n retry: false,\n },\n },\n});\n\nexport default queryClient;\n","import queryClient from './queryClient';\n\nexport default queryClient;\n","import {\n functionalUpdate,\n hashQueryKey,\n hashQueryKeyByOptions,\n noop,\n parseFilterArgs,\n parseQueryArgs,\n partialMatchKey,\n} from './utils'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\nimport { defaultLogger } from './logger'\nimport type { CancelOptions, DefaultedQueryObserverOptions } from './types'\nimport type { Logger } from './logger'\nimport type { QueryState } from './query'\nimport type {\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryClientConfig,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n ResetQueryFilters,\n SetDataOptions,\n WithRequired,\n} from './types'\nimport type { MutationFilters, QueryFilters, Updater } from './utils'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions<any, any, any>\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions<any, any, any, any>\n}\n\n// CLASS\n\nexport class QueryClient {\n private queryCache: QueryCache\n private mutationCache: MutationCache\n private logger: Logger\n private defaultOptions: DefaultOptions\n private queryDefaults: QueryDefaults[]\n private mutationDefaults: MutationDefaults[]\n private mountCount: number\n private unsubscribeFocus?: () => void\n private unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.queryCache = config.queryCache || new QueryCache()\n this.mutationCache = config.mutationCache || new MutationCache()\n this.logger = config.logger || defaultLogger\n this.defaultOptions = config.defaultOptions || {}\n this.queryDefaults = []\n this.mutationDefaults = []\n this.mountCount = 0\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\n `Passing a custom logger has been deprecated and will be removed in the next major version.`,\n )\n }\n }\n\n mount(): void {\n this.mountCount++\n if (this.mountCount !== 1) return\n\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.queryCache.onFocus()\n }\n })\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.mountCount--\n if (this.mountCount !== 0) return\n\n this.unsubscribeFocus?.()\n this.unsubscribeFocus = undefined\n\n this.unsubscribeOnline?.()\n this.unsubscribeOnline = undefined\n }\n\n isFetching(filters?: QueryFilters): number\n isFetching(queryKey?: QueryKey, filters?: QueryFilters): number\n isFetching(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): number {\n const [filters] = parseFilterArgs(arg1, arg2)\n filters.fetchStatus = 'fetching'\n return this.queryCache.findAll(filters).length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.mutationCache.findAll({ ...filters, fetching: true }).length\n }\n\n getQueryData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): TQueryFnData | undefined {\n return this.queryCache.find<TQueryFnData>(queryKey, filters)?.state.data\n }\n\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: WithRequired<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n ): Promise<TData>\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: Omit<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n ): Promise<TData>\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: Omit<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n ): Promise<TData>\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | WithRequired<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n const cachedData = this.getQueryData<TData>(parsedOptions.queryKey!)\n\n return cachedData\n ? Promise.resolve(cachedData)\n : this.fetchQuery(parsedOptions)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData<TQueryFnData = unknown>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.queryCache.find<TQueryFnData>(queryKey)\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const parsedOptions = parseQueryArgs(queryKey)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n return this.queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData<TQueryFnData>(\n queryKeyOrFilters: QueryKey | QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = undefined>(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.queryCache.find<TQueryFnData, TError>(queryKey, filters)?.state\n }\n\n removeQueries(filters?: QueryFilters): void\n removeQueries(queryKey?: QueryKey, filters?: QueryFilters): void\n removeQueries(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): void {\n const [filters] = parseFilterArgs(arg1, arg2)\n const queryCache = this.queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries<TPageData = unknown>(\n filters?: ResetQueryFilters<TPageData>,\n options?: ResetOptions,\n ): Promise<void>\n resetQueries<TPageData = unknown>(\n queryKey?: QueryKey,\n filters?: ResetQueryFilters<TPageData>,\n options?: ResetOptions,\n ): Promise<void>\n resetQueries(\n arg1?: QueryKey | ResetQueryFilters,\n arg2?: ResetQueryFilters | ResetOptions,\n arg3?: ResetOptions,\n ): Promise<void> {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n const queryCache = this.queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise<void>\n cancelQueries(\n queryKey?: QueryKey,\n filters?: QueryFilters,\n options?: CancelOptions,\n ): Promise<void>\n cancelQueries(\n arg1?: QueryKey | QueryFilters,\n arg2?: QueryFilters | CancelOptions,\n arg3?: CancelOptions,\n ): Promise<void> {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3)\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true\n }\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .map((query) => query.cancel(cancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries<TPageData = unknown>(\n filters?: InvalidateQueryFilters<TPageData>,\n options?: InvalidateOptions,\n ): Promise<void>\n invalidateQueries<TPageData = unknown>(\n queryKey?: QueryKey,\n filters?: InvalidateQueryFilters<TPageData>,\n options?: InvalidateOptions,\n ): Promise<void>\n invalidateQueries(\n arg1?: QueryKey | InvalidateQueryFilters,\n arg2?: InvalidateQueryFilters | InvalidateOptions,\n arg3?: InvalidateOptions,\n ): Promise<void> {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n return notifyManager.batch(() => {\n this.queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries<TPageData = unknown>(\n filters?: RefetchQueryFilters<TPageData>,\n options?: RefetchOptions,\n ): Promise<void>\n refetchQueries<TPageData = unknown>(\n queryKey?: QueryKey,\n filters?: RefetchQueryFilters<TPageData>,\n options?: RefetchOptions,\n ): Promise<void>\n refetchQueries(\n arg1?: QueryKey | RefetchQueryFilters,\n arg2?: RefetchQueryFilters | RefetchOptions,\n arg3?: RefetchOptions,\n ): Promise<void> {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) =>\n query.fetch(undefined, {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n meta: { refetchPage: filters.refetchPage },\n }),\n ),\n )\n\n let promise = Promise.all(promises).then(noop)\n\n if (!options?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>>\n fetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<InfiniteData<TData>> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n parsedOptions.behavior = infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData\n >()\n return this.fetchQuery(parsedOptions)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchInfiniteQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n resumePausedMutations(): Promise<unknown> {\n return this.mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.mutationCache\n }\n\n getLogger(): Logger {\n return this.logger\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: QueryObserverOptions<unknown, any, any, any>,\n ): void {\n const result = this.queryDefaults.find(\n (x) => hashQueryKey(queryKey) === hashQueryKey(x.queryKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.queryDefaults.push({ queryKey, defaultOptions: options })\n }\n }\n\n getQueryDefaults(\n queryKey?: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> | undefined {\n if (!queryKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.queryDefaults.find((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several query defaults match with key '${JSON.stringify(\n queryKey,\n )}'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: MutationObserverOptions<any, any, any, any>,\n ): void {\n const result = this.mutationDefaults.find(\n (x) => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.mutationDefaults.push({ mutationKey, defaultOptions: options })\n }\n }\n\n getMutationDefaults(\n mutationKey?: MutationKey,\n ): MutationObserverOptions<any, any, any, any> | undefined {\n if (!mutationKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.mutationDefaults.find((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several mutation defaults match with key '${JSON.stringify(\n mutationKey,\n )}'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n defaultQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n >(\n options?:\n | QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options?.queryKey),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options?.mutationKey),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.queryCache.clear()\n this.mutationCache.clear()\n }\n}\n","import { toPairs } from 'ramda';\n\ninterface NamesObject {\n [s: string]: any;\n}\n/**\n * Helper function that accepts a dynamic path (i.e. '/aws/{namespace}/{name}') and an object with the values\n * Returns the same path with the dynamic names replaced by valid values.\n */\nfunction replacePathNames(path: string, names: NamesObject): string {\n let newPath = path;\n\n const entries = toPairs(names);\n for (const [name, value] of entries) {\n newPath = newPath.replace(`{${name}}`, value);\n }\n return newPath;\n}\n\nexport default replacePathNames;\n","import replacePathParams from './replacePathParams';\n\nexport default replacePathParams;\n","import isString from '../isString';\n\nfunction capitalizeFirstLetter(str: string): string;\nfunction capitalizeFirstLetter(str: undefined): undefined;\nfunction capitalizeFirstLetter(str: string | undefined): string | undefined {\n if (!isString(str)) {\n return str;\n }\n\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport default capitalizeFirstLetter;\n","import capitalizeFirstLetter from './capitalizeFirstLetter';\n\nexport default capitalizeFirstLetter;\n","function isString(str: any): str is string {\n return typeof str === 'string';\n}\n\nexport default isString;\n","import isString from './isString';\n\nexport default isString;\n","const pluralize = (\n count: number,\n nonPlural: string,\n plural: string\n): string => {\n if (count === 1) {\n return nonPlural;\n }\n\n return plural;\n};\n\nexport default pluralize;\n","import pluralize from './pluralize';\n\nexport default pluralize;\n","import eventBus, { EventTypes } from 'utils/helpers/eventBus';\n\nfunction toggleMainSidebar(state: boolean): void {\n eventBus.emit(EventTypes.TOGGLE_MAIN_SIDEBAR, state);\n}\n\nexport default toggleMainSidebar;\n","import toggleMainSidebar from './toggleMainSidebar';\n\nexport default toggleMainSidebar;\n","const academyLinks = {\n root: () => '/academy',\n whatIsTiledb: () => '/academy/what-is-tiledb',\n getStarted: () => '/academy/get-started/',\n structureImportance: () => '/academy/structure/why-structure-is-important/',\n arraysIntro: () => '/academy/structure/arrays/introduction/',\n cloudCredentials: () =>\n '/academy/accounts/individual/profile/cloud-credentials',\n rootPath: () => `/academy/accounts/individual/profile/storage-paths/`,\n tablesIntro: () => '/academy/structure/tables/introduction/',\n bioimagingIntro: () => '/academy/structure/life-sciences/biomedical-imaging/',\n ml: () => '/academy/structure/ai-ml/ml-models/introduction/',\n vectorSearch: () => '/academy/structure/ai-ml/vector-search/introduction/',\n populationGenomics: () =>\n '/academy/structure/life-sciences/population-genomics/introduction/',\n singleCell: () =>\n '/academy/structure/life-sciences/single-cell/introduction/',\n catalog: () => `/academy/catalog/`,\n catalogSearch: () => `/academy/catalog/search/`,\n monitor: () => `/academy/collaborate/logging/`,\n control: () => `/academy/collaborate/organizations/`,\n share: () => `/academy/collaborate/access-control/share-assets/`,\n groups: () => `/academy/catalog/groups/`,\n comply: () => `/academy/collaborate/introduction/`,\n preview: () => `/academy/analyze/preview-widgets`,\n query: () => `/academy/analyze/notebooks/`,\n visualize: () => `/academy/analyze/dashboards/`,\n scale: () => `/academy/scale/`,\n};\n\nexport default academyLinks;\n","import academyLinks from './academyLinks';\n\nexport default academyLinks;\n","import { NotebookSize } from 'api-client';\nimport { stringify } from 'query-string';\n\nexport interface AppsSearchParams {\n name?: string;\n id?: string;\n namespace?: string;\n size?: NotebookSize;\n dashboard?: boolean;\n}\n\nconst appsLinks = {\n root: () => '/apps',\n server: (\n params: {\n namespace: string;\n arrayId: string;\n arrayName: string;\n dashboard?: boolean;\n size?: NotebookSize;\n } | void\n ) => {\n if (!params) {\n return '/apps/server';\n }\n\n const searchParams: AppsSearchParams = {\n namespace: params.namespace,\n id: params.arrayId,\n name: params.arrayName,\n ...(params.dashboard\n ? {\n dashboard: true,\n }\n : {}),\n };\n\n const qString = stringify(searchParams);\n return `/apps/server?${qString}`;\n },\n};\n\nexport default appsLinks;\n","const arrayLinks = {\n details: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/arrays/details/${namespace}/${arrayId}`,\n\n overview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/arrays/details/${namespace}/${arrayId}/overview`,\n\n sharing: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/arrays/details/${namespace}/${arrayId}/sharing`,\n\n activity: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/arrays/details/${namespace}/${arrayId}/activity`,\n\n metadata: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/arrays/details/${namespace}/${arrayId}/metadata`,\n\n schema: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/arrays/details/${namespace}/${arrayId}/schema`,\n\n settings: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/arrays/details/${namespace}/${arrayId}/settings`,\n};\n\nexport default arrayLinks;\n","import arrayLinks from './arrayLinks';\n\nexport default arrayLinks;\n","const assetsLinks = {\n root: () => '/assets',\n data: {\n root: () => '/assets/data',\n my: () => '/assets/data/my',\n shared: () => '/assets/data/shared',\n },\n code: {\n root: () => '/assets/code',\n my: () => '/assets/code/my',\n shared: () => '/assets/code/shared',\n },\n arrays: {\n root: () => '/assets/arrays',\n my: () => '/assets/arrays/my',\n shared: () => '/assets/arrays/shared',\n },\n files: {\n root: () => '/assets/files',\n my: () => '/assets/files/my',\n shared: () => '/assets/files/shared',\n },\n vcf: {\n root: () => '/assets/vcf',\n my: () => '/assets/vcf/my',\n shared: () => '/assets/vcf/shared',\n },\n soma: {\n root: () => '/assets/soma',\n my: () => '/assets/soma/my',\n shared: () => '/assets/soma/shared',\n },\n biomedicalImaging: {\n root: () => '/assets/biomedical-imaging',\n my: () => '/assets/biomedical-imaging/my',\n shared: () => '/assets/biomedical-imaging/shared',\n },\n pointCloud: {\n root: () => '/assets/point-cloud',\n my: () => '/assets/point-cloud/my',\n shared: () => '/assets/point-cloud/shared',\n },\n geometry: {\n root: () => '/assets/geometry',\n my: () => '/assets/geometry/my',\n shared: () => '/assets/geometry/shared',\n },\n raster: {\n root: () => '/assets/raster',\n my: () => '/assets/raster/my',\n shared: () => '/assets/raster/shared',\n },\n vectorSearch: {\n root: () => '/assets/vector-search',\n my: () => '/assets/vector-search/my',\n shared: () => '/assets/vector-search/shared',\n },\n notebooks: {\n root: () => '/assets/notebooks',\n my: () => '/assets/notebooks/my',\n shared: () => '/assets/notebooks/shared',\n },\n dashboards: {\n root: () => '/assets/dashboards',\n my: () => '/assets/dashboards/my',\n shared: () => '/assets/dashboards/shared',\n },\n udfs: {\n root: () => '/assets/udfs',\n my: () => '/assets/udfs/my',\n shared: () => '/assets/udfs/shared',\n },\n taskGraphs: {\n root: () => '/assets/task-graphs',\n my: () => '/assets/task-graphs/my',\n shared: () => '/assets/task-graphs/shared',\n },\n mlModels: {\n root: () => '/assets/ml-models',\n my: () => '/assets/ml-models/my',\n shared: () => '/assets/ml-models/shared',\n },\n groups: {\n root: () => '/assets/groups',\n my: () => '/assets/groups/my',\n shared: () => '/assets/groups/shared',\n },\n};\n\nexport default assetsLinks;\n","import assetsLinks from './assetsLinks';\n\nexport default assetsLinks;\n","interface ProviderProps {\n provider: 'github' | 'google' | 'stripe' | 'okta' | 'perdomain';\n}\n\nconst authLinks = {\n root: () => '/auth',\n login: () => '/auth/login',\n signup: () => '/auth/signup',\n forgotPassword: () => '/auth/forgot-password',\n resetPassword: () => '/auth/reset_password',\n confirmEmail: () => '/auth/confirm_email',\n emailNotConfirmed: () => '/auth/email-not-confirmed',\n ssoProvider: ({ provider }: ProviderProps) =>\n `/auth/sso/callback/${provider}`,\n companySSO: () => `/auth/sso/company`,\n logout: () => '/logout',\n};\n\nexport default authLinks;\n","import authLinks from './authLinks';\n\nexport default authLinks;\n","const groupLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}/overview`,\n\n preview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}/preview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}/contents`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/biomedical-imaging/${namespace}/${groupId}/activity`,\n};\n\nexport default groupLinks;\n","import biomedicalImagingLinks from './biomedicalImagingLinks';\n\nexport default biomedicalImagingLinks;\n","const fileLinks = {\n details: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/files/details/${namespace}/${arrayId}`,\n\n overview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/files/details/${namespace}/${arrayId}/overview`,\n\n metadata: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/files/details/${namespace}/${arrayId}/metadata`,\n\n sharing: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/files/details/${namespace}/${arrayId}/sharing`,\n\n activity: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/files/details/${namespace}/${arrayId}/activity`,\n\n settings: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/files/details/${namespace}/${arrayId}/settings`,\n\n preview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/files/details/${namespace}/${arrayId}/preview`,\n\n download: ({\n namespace,\n arrayId,\n timestamp,\n }: {\n namespace: string;\n arrayId: string;\n timestamp?: number;\n }) =>\n `/files/details/${namespace}/${arrayId}/download?timestamp=${timestamp}`,\n};\n\nexport default fileLinks;\n","import fileLinks from './fileLinks';\n\nexport default fileLinks;\n","const geometryLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/geometry/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/geometry/${namespace}/${groupId}/overview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/geometry/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/geometry/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/geometry/${namespace}/${groupId}/contents`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/geometry/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/geometry/${namespace}/${groupId}/activity`,\n};\n\nexport default geometryLinks;\n","import geometryLinks from './geometryLinks';\n\nexport default geometryLinks;\n","const groupLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/groups/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/groups/${namespace}/${groupId}/overview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/groups/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/groups/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/groups/${namespace}/${groupId}/contents`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/groups/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/groups/${namespace}/${groupId}/activity`,\n};\n\nexport default groupLinks;\n","import groupLinks from './groupLinks';\n\nexport default groupLinks;\n","const externalLinks = {\n tiledbWebsite: 'https://tiledb.com/',\n tiledbAbout: 'https://tiledb.com/about',\n tiledbPricing: 'https://tiledb.com/pricing',\n tiledbContactSales: 'https://tiledb.com/contact-sales',\n tiledbPrivacyPolicy: 'https://tiledb.com/privacy-policy',\n tiledbTerms: 'https://tiledb.com/terms',\n tiledbContact: 'https://tiledb.com/contact',\n tiledbFeedback: 'https://feedback.tiledb.com',\n enterprise: {\n metrics:\n 'https://docs.tiledb.com/enterprise/installation#kubernetes-components',\n },\n tiledbCloudDocs: {\n home: 'https://docs.tiledb.com/cloud/',\n user: {\n storagePathSettings:\n 'https://docs.tiledb.com/cloud/how-to/account/set-up-default-storage-path',\n credentials:\n 'https://docs.tiledb.com/cloud/how-to/account/set-up-aws-credentials',\n },\n organization: {\n storagePathSettings:\n 'https://docs.tiledb.com/cloud/how-to/organizations/set-up-default-storage-path',\n },\n },\n docs: {\n install: 'https://docs.tiledb.com/main/how-to/installation/quick-install',\n },\n blogposts: {\n arrays101: 'https://tiledb.com/blog/tiledb-101-arrays',\n udfs: 'https://tiledb.com/blog/tiledb-cloud-user-defined-functions',\n taskgraphs: 'https://tiledb.com/blog/tiledb-cloud-task-graphs',\n vectorDB: 'https://tiledb.com/blog/why-tiledb-as-a-vector-database',\n geometries: 'https://tiledb.com/blog/why-tiledb-for-geometries',\n genomicsDataProblem:\n 'https://tiledb.com/blog/population-genomics-is-a-data-management-problem',\n universalModel:\n 'https://tiledb.com/blog/why-arrays-as-a-universal-data-model',\n },\n};\n\nexport default externalLinks;\n","import externalLinks from './externalLinks';\n\nexport default externalLinks;\n","import emails from './emails';\n\nexport default emails;\n","const emails = {\n billing: 'billing@tiledb.com',\n};\n\nexport default emails;\n","const settingsLinks = {\n root: () => `/settings`,\n profile: () => `/settings/profile`,\n members: () => `/settings/members`,\n credentials: () => '/settings/credentials',\n storagePaths: () => '/settings/storage-paths',\n tokens: () => '/settings/tokens',\n ssoConnections: () => '/settings/sso-connections',\n ssoConnection: ({ uuid }: { uuid: string }) =>\n `/settings/sso-connections/${uuid}`,\n billing: () => '/settings/billing',\n};\n\nexport default settingsLinks;\n","import settingsLinks from './settingsLinks';\n\nexport default settingsLinks;\n","const oauth2Links = {\n root: () => '/oauth2',\n login: () => '/oauth2/login',\n consent: () => '/oauth2/consent',\n};\n\nexport default oauth2Links;\n","import oauth2Links from './oauth2Links';\n\nexport default oauth2Links;\n","import rootPath from './rootPath';\n\nexport default rootPath;\n","const rootPath = '/';\n\nexport default rootPath;\n","import overviewLinks from './overviewLinks';\n\nexport default overviewLinks;\n","const overviewLinks = {\n root: () => '/overview',\n};\n\nexport default overviewLinks;\n","import mlModelLinks from './mlModelLinks';\n\nexport default mlModelLinks;\n","const mlModelLinks = {\n details: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/mlmodels/details/${namespace}/${arrayId}`,\n\n overview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/mlmodels/details/${namespace}/${arrayId}/overview`,\n\n metadata: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/mlmodels/details/${namespace}/${arrayId}/metadata`,\n\n sharing: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/mlmodels/details/${namespace}/${arrayId}/sharing`,\n\n settings: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/mlmodels/details/${namespace}/${arrayId}/settings`,\n\n activity: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/mlmodels/details/${namespace}/${arrayId}/activity`,\n\n preview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/mlmodels/details/${namespace}/${arrayId}/preview`,\n};\n\nexport default mlModelLinks;\n","import dashboardLinks from './dashboardLinks';\n\nexport default dashboardLinks;\n","const dashboardLinks = {\n details: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/dashboards/details/${namespace}/${arrayId}`,\n\n overview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/dashboards/details/${namespace}/${arrayId}/overview`,\n\n sharing: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/dashboards/details/${namespace}/${arrayId}/sharing`,\n\n settings: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/dashboards/details/${namespace}/${arrayId}/settings`,\n\n activity: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/dashboards/details/${namespace}/${arrayId}/activity`,\n};\n\nexport default dashboardLinks;\n","import activityLinks from './activityLinks';\n\nexport default activityLinks;\n","const activityLinks = {\n root: () => '/activity',\n tasks: () => '/activity/tasks',\n taskGraphLogs: () => '/activity/taskgraphs',\n taskDetails: ({ taskId }: { taskId: string }) => `/activity/tasks/${taskId}`,\n activityDetails: ({\n namespace,\n activityId,\n arrayId,\n }: {\n namespace: string;\n arrayId: string;\n activityId: string;\n }) => `/activity/${namespace}/${arrayId}/${activityId}`,\n taskGraphLogDetails: ({\n namespace,\n taskGraphId,\n }: {\n namespace: string;\n taskGraphId: string;\n }) => `/activity/taskgraphs/${namespace}/${taskGraphId}`,\n};\n\nexport default activityLinks;\n","const taskgraphLogsLinks = {\n root: () => '/taskgraphlogs',\n details: ({\n namespace,\n taskGraphId,\n }: {\n namespace: string;\n taskGraphId: string;\n }) => `/taskgraphlogs/${namespace}/${taskGraphId}`,\n};\n\nexport default taskgraphLogsLinks;\n","import taskgraphLogsLinks from './taskgraphLogsLinks';\n\nexport default taskgraphLogsLinks;\n","import appsLinks from './appsLinks';\nexport * from './appsLinks';\nexport default appsLinks;\n","const invitationLinks = {\n root: () => '/invitations',\n accept: ({ invitationId }: { invitationId: string }) =>\n `/invitations/${invitationId}`,\n};\n\nexport default invitationLinks;\n","import invitationLinks from './invitationLinks';\n\nexport default invitationLinks;\n","import { AssetType } from 'api-client';\nimport { stringifyUrl } from 'query-string';\n\nconst ROOT = '/marketplace';\n\nconst marketplaceLinks = {\n root: () => ROOT,\n arrays: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Array },\n }),\n files: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.File },\n }),\n vcf: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Vcf },\n }),\n soma: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Soma },\n }),\n biomedicalImaging: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Bioimg },\n }),\n vectorSearch: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.VectorSearch },\n }),\n pointCloud: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Pointcloud },\n }),\n geometries: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Geometry },\n }),\n raster: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Raster },\n }),\n notebooks: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Notebook },\n }),\n dashboards: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Dashboard },\n }),\n taskGraphs: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.RegisteredTaskGraph },\n }),\n udfs: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.UserDefinedFunction },\n }),\n mlModels: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.MlModel },\n }),\n groups: () =>\n stringifyUrl({\n url: ROOT,\n query: { asset_type: AssetType.Group },\n }),\n};\n\nexport default marketplaceLinks;\n","import marketplaceLinks from './marketplaceLinks';\n\nexport default marketplaceLinks;\n","const monitorLinks = {\n root: () => '/monitor',\n servers: () => '/monitor/servers',\n logs: () => '/monitor/logs',\n tasks: () => '/monitor/logs/tasks',\n taskGraphLogs: () => '/monitor/logs/taskgraphs',\n};\n\nexport default monitorLinks;\n","import monitorLinks from './monitorLinks';\n\nexport default monitorLinks;\n","const notebookLinks = {\n details: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/notebooks/details/${namespace}/${arrayId}`,\n\n overview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/notebooks/details/${namespace}/${arrayId}/overview`,\n\n sharing: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/notebooks/details/${namespace}/${arrayId}/sharing`,\n\n settings: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/notebooks/details/${namespace}/${arrayId}/settings`,\n\n activity: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/notebooks/details/${namespace}/${arrayId}/activity`,\n\n preview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/notebooks/details/${namespace}/${arrayId}/preview`,\n};\n\nexport default notebookLinks;\n","import notebookLinks from './notebookLinks';\n\nexport default notebookLinks;\n","const pointCloudLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}/overview`,\n\n preview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}/preview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}/contents`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/point-cloud/${namespace}/${groupId}/activity`,\n};\n\nexport default pointCloudLinks;\n","import pointCloudLinks from './pointCloudLinks';\n\nexport default pointCloudLinks;\n","const rasterLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}/overview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}/contents`,\n\n preview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}/preview`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/raster/${namespace}/${groupId}/activity`,\n};\n\nexport default rasterLinks;\n","import rasterLinks from './rasterLinks';\n\nexport default rasterLinks;\n","const somaLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/soma/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/soma/${namespace}/${groupId}/overview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/soma/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/soma/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/soma/${namespace}/${groupId}/contents`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/soma/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/soma/${namespace}/${groupId}/activity`,\n};\n\nexport default somaLinks;\n","import somaLinks from './somaLinks';\n\nexport default somaLinks;\n","const taskgraphLinks = {\n details: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/taskgraphs/details/${namespace}/${arrayId}`,\n\n overview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/taskgraphs/details/${namespace}/${arrayId}/overview`,\n\n metadata: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/taskgraphs/details/${namespace}/${arrayId}/metadata`,\n\n sharing: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/taskgraphs/details/${namespace}/${arrayId}/sharing`,\n\n preview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/taskgraphs/details/${namespace}/${arrayId}/preview`,\n\n settings: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/taskgraphs/details/${namespace}/${arrayId}/settings`,\n\n activity: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/taskgraphs/details/${namespace}/${arrayId}/activity`,\n};\n\nexport default taskgraphLinks;\n","import taskgraphLinks from './taskgraphLinks';\n\nexport default taskgraphLinks;\n","const udfLinks = {\n details: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/udfs/details/${namespace}/${arrayId}`,\n\n overview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/udfs/details/${namespace}/${arrayId}/overview`,\n\n sharing: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/udfs/details/${namespace}/${arrayId}/sharing`,\n\n activity: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/udfs/details/${namespace}/${arrayId}/activity`,\n\n settings: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/udfs/details/${namespace}/${arrayId}/settings`,\n\n preview: ({ namespace, arrayId }: { namespace: string; arrayId: string }) =>\n `/udfs/details/${namespace}/${arrayId}/preview`,\n};\n\nexport default udfLinks;\n","import udfLinks from './udfLinks';\n\nexport default udfLinks;\n","const vcfLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vcf/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vcf/${namespace}/${groupId}/overview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vcf/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vcf/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vcf/${namespace}/${groupId}/contents`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vcf/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vcf/${namespace}/${groupId}/activity`,\n};\n\nexport default vcfLinks;\n","import vcfLinks from './vcfLinks';\n\nexport default vcfLinks;\n","const vectorSearchLinks = {\n details: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vector-search/${namespace}/${groupId}`,\n\n overview: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vector-search/${namespace}/${groupId}/overview`,\n\n sharing: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vector-search/${namespace}/${groupId}/sharing`,\n\n settings: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vector-search/${namespace}/${groupId}/settings`,\n\n contents: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vector-search/${namespace}/${groupId}/contents`,\n\n metadata: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vector-search/${namespace}/${groupId}/metadata`,\n\n activity: ({ namespace, groupId }: { namespace: string; groupId: string }) =>\n `/vector-search/${namespace}/${groupId}/activity`,\n};\n\nexport default vectorSearchLinks;\n","import vectorSearchLinks from './vectorSearchLinks';\n\nexport default vectorSearchLinks;\n","const academyRouterPaths = {\n root: '/academy',\n};\n\nexport default academyRouterPaths;\n","import academyRouterPaths from './academyRouterPaths';\n\nexport default academyRouterPaths;\n","const appsRouterPaths = {\n root: '/apps',\n server: '/apps/server',\n};\n\nexport default appsRouterPaths;\n","import appsRouterPaths from './appsRouterPaths';\n\nexport default appsRouterPaths;\n","const assetsRouterPaths = {\n root: '/assets',\n data: '/assets/data/:category(my|shared)',\n code: '/assets/code/:category(my|shared)',\n arrays: '/assets/arrays/:category(my|shared)',\n files: '/assets/files/:category(my|shared)',\n vcf: '/assets/vcf/:category(my|shared)',\n soma: '/assets/soma/:category(my|shared)',\n biomedicalImaging: '/assets/biomedical-imaging/:category(my|shared)',\n pointCloud: '/assets/point-cloud/:category(my|shared)',\n geometry: '/assets/geometry/:category(my|shared)',\n raster: '/assets/raster/:category(my|shared)',\n vector: '/assets/vector-search/:category(my|shared)',\n notebooks: '/assets/notebooks/:category(my|shared)',\n dashboards: '/assets/dashboards/:category(my|shared)',\n udfs: '/assets/udfs/:category(my|shared)',\n taskGraphs: '/assets/task-graphs/:category(my|shared)',\n mlModels: '/assets/ml-models/:category(my|shared)',\n groups: '/assets/groups/:category(my|shared)',\n};\n\nexport default assetsRouterPaths;\n","import assetsRouterPaths from './assetsRouterPaths';\n\nexport default assetsRouterPaths;\n","const biomedicalImagingRouterPaths = {\n root: '/biomedical-imaging',\n details: '/biomedical-imaging/:namespace/:groupId',\n overview: '/biomedical-imaging/:namespace/:groupId/overview',\n preview: '/biomedical-imaging/:namespace/:groupId/preview',\n sharing: '/biomedical-imaging/:namespace/:groupId/sharing',\n settings: '/biomedical-imaging/:namespace/:groupId/settings',\n contents: '/biomedical-imaging/:namespace/:groupId/contents',\n metadata: '/biomedical-imaging/:namespace/:groupId/metadata',\n activity: '/biomedical-imaging/:namespace/:groupId/activity',\n};\n\nexport default biomedicalImagingRouterPaths;\n","import biomedicalImagingRouterPaths from './biomedicalImagingRouterPaths';\n\nexport default biomedicalImagingRouterPaths;\n","const geometryRouterPaths = {\n root: '/geometry',\n browser: '/geometry/:category(me|shared|public)',\n details: '/geometry/:namespace/:groupId',\n overview: '/geometry/:namespace/:groupId/overview',\n sharing: '/geometry/:namespace/:groupId/sharing',\n settings: '/geometry/:namespace/:groupId/settings',\n contents: '/geometry/:namespace/:groupId/contents',\n metadata: '/geometry/:namespace/:groupId/metadata',\n activity: '/geometry/:namespace/:groupId/activity',\n};\n\nexport default geometryRouterPaths;\n","import geometryRouterPaths from './geometryRouterPaths';\n\nexport default geometryRouterPaths;\n","const groupRouterPaths = {\n root: '/groups',\n details: '/groups/:namespace/:groupId',\n overview: '/groups/:namespace/:groupId/overview',\n sharing: '/groups/:namespace/:groupId/sharing',\n settings: '/groups/:namespace/:groupId/settings',\n contents: '/groups/:namespace/:groupId/contents',\n metadata: '/groups/:namespace/:groupId/metadata',\n activity: '/groups/:namespace/:groupId/activity',\n};\n\nexport default groupRouterPaths;\n","import groupRouterPaths from './groupRouterPaths';\n\nexport default groupRouterPaths;\n","const arrayRouterPaths = {\n root: '/arrays',\n details: '/arrays/details/:namespace/:arrayId',\n sharing: '/arrays/details/:namespace/:arrayId/sharing',\n overview: '/arrays/details/:namespace/:arrayId/overview',\n schema: '/arrays/details/:namespace/:arrayId/schema',\n metadata: '/arrays/details/:namespace/:arrayId/metadata',\n activity: '/arrays/details/:namespace/:arrayId/activity',\n settings: '/arrays/details/:namespace/:arrayId/settings',\n};\n\nexport default arrayRouterPaths;\n","import arrayRouterPaths from './arrayRouterPaths';\n\nexport default arrayRouterPaths;\n","import notebookRouterPaths from './notebookRouterPaths';\n\nexport default notebookRouterPaths;\n","const notebookRouterPaths = {\n root: '/notebooks',\n details: '/notebooks/details/:namespace/:arrayId',\n sharing: '/notebooks/details/:namespace/:arrayId/sharing',\n overview: '/notebooks/details/:namespace/:arrayId/overview',\n settings: '/notebooks/details/:namespace/:arrayId/settings',\n preview: '/notebooks/details/:namespace/:arrayId/preview',\n activity: '/notebooks/details/:namespace/:arrayId/activity',\n};\n\nexport default notebookRouterPaths;\n","import udfRouterPaths from './udfRouterPaths';\n\nexport default udfRouterPaths;\n","const udfRouterPaths = {\n root: '/udfs',\n details: '/udfs/details/:namespace/:arrayId',\n sharing: '/udfs/details/:namespace/:arrayId/sharing',\n activity: '/udfs/details/:namespace/:arrayId/activity',\n overview: '/udfs/details/:namespace/:arrayId/overview',\n settings: '/udfs/details/:namespace/:arrayId/settings',\n preview: '/udfs/details/:namespace/:arrayId/preview',\n};\n\nexport default udfRouterPaths;\n","import settingsRouterPaths from './settingsRouterPaths';\n\nexport default settingsRouterPaths;\n","const settingsRouterPaths = {\n root: '/settings',\n profile: '/settings/profile',\n members: '/settings/members',\n credentials: '/settings/credentials',\n storagePaths: '/settings/storage-paths',\n tokens: '/settings/tokens',\n ssoConnections: '/settings/sso-connections',\n ssoConnection: '/settings/sso-connections/:uuid',\n billing: '/settings/billing',\n};\n\nexport default settingsRouterPaths;\n","import authRouterPaths from './authRouterPaths';\n\nexport default authRouterPaths;\n","const arrayRouterPaths = {\n root: '/auth',\n login: '/auth/login',\n signup: '/auth/signup',\n forgotPassword: '/auth/forgot-password',\n resetPassword: '/auth/reset_password',\n emailNotConfirmed: '/auth/email-not-confirmed',\n confirmEmail: '/auth/confirm_email',\n companySSO: '/auth/sso/company',\n ssoProvider: '/auth/sso/callback/:provider',\n logout: '/logout',\n};\n\nexport default arrayRouterPaths;\n","import oauth2RouterPaths from './oauth2RouterPaths';\n\nexport default oauth2RouterPaths;\n","const oauth2RouterPaths = {\n root: '/oauth2',\n login: '/oauth2/login',\n consent: '/oauth2/consent',\n};\n\nexport default oauth2RouterPaths;\n","import invitationRouterPaths from './invitationRouterPaths';\n\nexport default invitationRouterPaths;\n","const invitationRouterPaths = {\n root: '/invitations',\n accept: '/invitations/:invitation',\n};\n\nexport default invitationRouterPaths;\n","import overviewRouterPaths from './overviewRouterPaths';\n\nexport default overviewRouterPaths;\n","const overviewRouterPaths = {\n root: '/overview',\n};\n\nexport default overviewRouterPaths;\n","import callbackRouterPaths from './callbackRouterPaths';\n\nexport default callbackRouterPaths;\n","const callbackRouterPaths = {\n root: '/callback',\n stripe: '/callback/stripe',\n};\n\nexport default callbackRouterPaths;\n","const dashboardRouterPaths = {\n root: '/dashboards',\n details: '/dashboards/details/:namespace/:arrayId',\n sharing: '/dashboards/details/:namespace/:arrayId/sharing',\n overview: '/dashboards/details/:namespace/:arrayId/overview',\n settings: '/dashboards/details/:namespace/:arrayId/settings',\n activity: '/dashboards/details/:namespace/:arrayId/activity',\n};\n\nexport default dashboardRouterPaths;\n","import dashboardRouterPaths from './dashboardRouterPaths';\n\nexport default dashboardRouterPaths;\n","import fileRouterPaths from './fileRouterPaths';\n\nexport default fileRouterPaths;\n","const fileRouterPaths = {\n root: '/files',\n details: '/files/details/:namespace/:arrayId',\n sharing: '/files/details/:namespace/:arrayId/sharing',\n activity: '/files/details/:namespace/:arrayId/activity',\n overview: '/files/details/:namespace/:arrayId/overview',\n metadata: '/files/details/:namespace/:arrayId/metadata',\n settings: '/files/details/:namespace/:arrayId/settings',\n preview: '/files/details/:namespace/:arrayId/preview',\n download: '/files/details/:namespace/:arrayId/download',\n};\n\nexport default fileRouterPaths;\n","const activityRouterPaths = {\n root: '/activity',\n tasks: '/activity/tasks',\n taskDetails: '/activity/tasks/:taskId',\n activityDetails: '/activity/:namespace/:arrayId/:activityId',\n taskGraphLogs: '/activity/taskgraphs',\n taskGraphLogDetails: '/activity/taskgraphs/:namespace/:taskGraphId',\n};\n\nexport default activityRouterPaths;\n","import activityRouterPaths from './activityRouterPaths';\n\nexport default activityRouterPaths;\n","const taskgraphLogsRouterPaths = {\n root: '/taskgraphlogs',\n details: '/taskgraphlogs/:namespace/:taskGraphId',\n};\n\nexport default taskgraphLogsRouterPaths;\n","import taskgraphLogsRouterPaths from './taskgraphLogsRouterPaths';\n\nexport default taskgraphLogsRouterPaths;\n","const marketplaceRouterPaths = {\n root: '/marketplace',\n};\n\nexport default marketplaceRouterPaths;\n","import marketplaceRouterPaths from './marketplaceRouterPaths';\n\nexport default marketplaceRouterPaths;\n","const mlModelRouterPaths = {\n root: '/mlmodels',\n details: '/mlmodels/details/:namespace/:arrayId',\n overview: '/mlmodels/details/:namespace/:arrayId/overview',\n sharing: '/mlmodels/details/:namespace/:arrayId/sharing',\n settings: '/mlmodels/details/:namespace/:arrayId/settings',\n preview: '/mlmodels/details/:namespace/:arrayId/preview',\n activity: '/mlmodels/details/:namespace/:arrayId/activity',\n metadata: '/mlmodels/details/:namespace/:arrayId/metadata',\n};\n\nexport default mlModelRouterPaths;\n","import mlModelRouterPaths from './mlModelRouterPaths';\n\nexport default mlModelRouterPaths;\n","const monitorRouterPaths = {\n root: '/monitor',\n servers: '/monitor/servers',\n logs: '/monitor/logs',\n tasks: '/monitor/logs/tasks',\n taskGraphLogs: '/monitor/logs/taskgraphs',\n};\n\nexport default monitorRouterPaths;\n","import monitorRouterPaths from './monitorRouterPaths';\n\nexport default monitorRouterPaths;\n","const pointCloudRouterPaths = {\n root: '/point-cloud',\n details: '/point-cloud/:namespace/:groupId',\n overview: '/point-cloud/:namespace/:groupId/overview',\n sharing: '/point-cloud/:namespace/:groupId/sharing',\n settings: '/point-cloud/:namespace/:groupId/settings',\n contents: '/point-cloud/:namespace/:groupId/contents',\n preview: '/point-cloud/:namespace/:groupId/preview',\n metadata: '/point-cloud/:namespace/:groupId/metadata',\n activity: '/point-cloud/:namespace/:groupId/activity',\n};\n\nexport default pointCloudRouterPaths;\n","import pointCloudRouterPaths from './pointCloudRouterPaths';\n\nexport default pointCloudRouterPaths;\n","const rasterRouterPaths = {\n root: '/raster',\n details: '/raster/:namespace/:groupId',\n overview: '/raster/:namespace/:groupId/overview',\n sharing: '/raster/:namespace/:groupId/sharing',\n settings: '/raster/:namespace/:groupId/settings',\n contents: '/raster/:namespace/:groupId/contents',\n preview: '/raster/:namespace/:groupId/preview',\n metadata: '/raster/:namespace/:groupId/metadata',\n activity: '/raster/:namespace/:groupId/activity',\n};\n\nexport default rasterRouterPaths;\n","import rasterRouterPaths from './rasterRouterPaths';\n\nexport default rasterRouterPaths;\n","const somaRouterPaths = {\n root: '/soma',\n details: '/soma/:namespace/:groupId',\n overview: '/soma/:namespace/:groupId/overview',\n sharing: '/soma/:namespace/:groupId/sharing',\n settings: '/soma/:namespace/:groupId/settings',\n contents: '/soma/:namespace/:groupId/contents',\n metadata: '/soma/:namespace/:groupId/metadata',\n activity: '/soma/:namespace/:groupId/activity',\n};\n\nexport default somaRouterPaths;\n","import somaRouterPaths from './somaRouterPaths';\n\nexport default somaRouterPaths;\n","const taskGraphRouterPaths = {\n root: '/taskgraphs',\n details: '/taskgraphs/details/:namespace/:arrayId',\n overview: '/taskgraphs/details/:namespace/:arrayId/overview',\n sharing: '/taskgraphs/details/:namespace/:arrayId/sharing',\n settings: '/taskgraphs/details/:namespace/:arrayId/settings',\n preview: '/taskgraphs/details/:namespace/:arrayId/preview',\n activity: '/taskgraphs/details/:namespace/:arrayId/activity',\n};\n\nexport default taskGraphRouterPaths;\n","import taskGraphRouterPaths from './taskGraphRouterPaths';\n\nexport default taskGraphRouterPaths;\n","const tasksRouterPaths = {\n root: '/tasks',\n taskDetails: '/tasks/:taskId',\n};\n\nexport default tasksRouterPaths;\n","import tasksRouterPaths from './tasksRouterPaths';\n\nexport default tasksRouterPaths;\n","const vcfRouterPaths = {\n root: '/vcf',\n details: '/vcf/:namespace/:groupId',\n overview: '/vcf/:namespace/:groupId/overview',\n sharing: '/vcf/:namespace/:groupId/sharing',\n settings: '/vcf/:namespace/:groupId/settings',\n contents: '/vcf/:namespace/:groupId/contents',\n metadata: '/vcf/:namespace/:groupId/metadata',\n activity: '/vcf/:namespace/:groupId/activity',\n};\n\nexport default vcfRouterPaths;\n","import vcfRouterPaths from './vcfRouterPaths';\n\nexport default vcfRouterPaths;\n","const vectorSearchRouterPaths = {\n root: '/vector-search',\n details: '/vector-search/:namespace/:groupId',\n overview: '/vector-search/:namespace/:groupId/overview',\n sharing: '/vector-search/:namespace/:groupId/sharing',\n settings: '/vector-search/:namespace/:groupId/settings',\n contents: '/vector-search/:namespace/:groupId/contents',\n metadata: '/vector-search/:namespace/:groupId/metadata',\n activity: '/vector-search/:namespace/:groupId/activity',\n};\n\nexport default vectorSearchRouterPaths;\n","import vectorSearchRouterPaths from './vectorSearchRouterPaths';\n\nexport default vectorSearchRouterPaths;\n","var resizeObservers = [];\nexport { resizeObservers };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a, _b;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import type { Event, EventProcessor, Hub, Integration, StackFrame } from '@sentry/types';\nimport { getEventDescription, logger, stringMatchesSomePattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array<string | RegExp>;\n denyUrls: Array<string | RegExp>;\n ignoreErrors: Array<string | RegExp>;\n ignoreInternal: boolean;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string = InboundFilters.id;\n\n public constructor(private readonly _options: Partial<InboundFiltersOptions> = {}) {}\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (processor: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const eventProcess: EventProcessor = (event: Event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n}\n\n/** JSDoc */\nexport function _mergeOptions(\n internalOptions: Partial<InboundFiltersOptions> = {},\n clientOptions: Partial<InboundFiltersOptions> = {},\n): Partial<InboundFiltersOptions> {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nexport function _shouldDropEvent(event: Event, options: Partial<InboundFiltersOptions>): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n __DEBUG_BUILD__ &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array<string | RegExp>): boolean {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array<string | RegExp>): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array<string | RegExp>): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n __DEBUG_BUILD__ && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n __DEBUG_BUILD__ && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","import type { Integration, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string = FunctionToString.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n}\n","import type { Integration, Options } from '@sentry/types';\nimport { arrayify, logger } from '@sentry/utils';\n\nimport { getCurrentHub } from './hub';\nimport { addGlobalEventProcessor } from './scope';\n\ndeclare module '@sentry/types' {\n interface Integration {\n isDefaultInstance?: boolean;\n }\n}\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n};\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n const integrationsByName: { [key: string]: Integration } = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations: Integration[];\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(integrations: Integration[]): IntegrationIndex {\n const integrationIndex: IntegrationIndex = {};\n\n integrations.forEach(integration => {\n setupIntegration(integration, integrationIndex);\n });\n\n return integrationIndex;\n}\n\n/** Setup a single integration. */\nexport function setupIntegration(integration: Integration, integrationIndex: IntegrationIndex): void {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n __DEBUG_BUILD__ && logger.log(`Integration installed: ${integration.name}`);\n }\n}\n","import type { ConsoleLevel } from './logger';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public logLevel: ConsoleLevel;\n\n public constructor(public message: string, logLevel: ConsoleLevel = 'warn') {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n","import type { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { SentryError } from './error';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nexport function dsnFromString(str: string): DsnComponents {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean | void {\n if (!__DEBUG_BUILD__) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray<keyof DsnComponents> = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport function makeDsn(from: DsnLike): DsnComponents {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n","import type { ClientOptions, DsnComponents, DsnLike, SdkInfo } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(\n dsn: DsnComponents,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions: string | ClientOptions = {} as ClientOptions,\n): string {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import type { StackFrame, StackLineParser, StackLineParserFn, StackParser } from '@sentry/types';\n\nconst STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = line.replace(/\\(error: (.*)\\)/, '$1');\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: StackFrame[]): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\ntype GetModuleFn = (filename: string | undefined) => string | undefined;\n\n// eslint-disable-next-line complexity\nfunction node(getModule?: GetModuleFn): StackLineParserFn {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n\n // eslint-disable-next-line complexity\n return (line: string) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object: string | undefined;\n let method: string | undefined;\n let functionName: string | undefined;\n let typeName: string | undefined;\n let methodName: string | undefined;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.slice(0, methodStart);\n method = functionName.slice(methodStart + 1);\n const objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.slice(objectEnd + 1);\n object = object.slice(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '<anonymous>') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '<anonymous>';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n const filename = lineMatch[2] && lineMatch[2].startsWith('file://') ? lineMatch[2].slice(7) : lineMatch[2];\n const isNative = lineMatch[5] === 'native';\n const isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n const in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: getModule ? getModule(filename) : undefined,\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nexport function nodeStackLineParser(getModule?: GetModuleFn): StackLineParser {\n return [90, node(getModule)];\n}\n","import { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n __DEBUG_BUILD__ &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (WINDOW as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { isInstanceOf, isString } from './is';\nimport { CONSOLE_LEVELS, logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\nexport type InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n __DEBUG_BUILD__ && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n __DEBUG_BUILD__ &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in WINDOW)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: string): void {\n if (!(level in WINDOW.console)) {\n return;\n }\n\n fill(WINDOW.console, level, function (originalConsoleMethod: () => any): Function {\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(WINDOW.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(WINDOW, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(WINDOW, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in WINDOW)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo: SentryWrappedXMLHttpRequest['__sentry_xhr__'] = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function (): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in WINDOW)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW as any)[target] && (WINDOW as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = WINDOW.onerror;\n\n WINDOW.onerror = function (msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;\n\n WINDOW.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","import type { Primitive } from '@sentry/types';\n\nimport { isNaN, isSyntheticEvent } from './is';\nimport type { MemoFunc } from './memo';\nimport { memoBuilder } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray<T> = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = +Infinity, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize<T>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray<unknown> {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value as ObjOrArray<unknown>)['__sentry_skip_normalization__']) {\n return value as ObjOrArray<unknown>;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray<unknown>;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value as ObjOrArray<unknown>);\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n// TODO remove this in v7 (this means the method will no longer be exported, under any name)\nexport { visit as walk };\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude<unknown, string | number | boolean | null>,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) as Prototype).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import type {\n Attachment,\n AttachmentItem,\n BaseEnvelopeHeaders,\n BaseEnvelopeItemHeaders,\n DataCategory,\n DsnComponents,\n Envelope,\n EnvelopeItem,\n EnvelopeItemType,\n Event,\n EventEnvelopeHeaders,\n SdkInfo,\n SdkMetadata,\n TextEncoderInternal,\n} from '@sentry/types';\n\nimport { dsnToString } from './dsn';\nimport { normalize } from './normalize';\nimport { dropUndefinedKeys } from './object';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope<E extends Envelope>(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope<E extends Envelope>(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as E;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nexport function forEachEnvelopeItem<E extends Envelope>(\n envelope: Envelope,\n callback: (envelopeItem: E[1][number], envelopeItemType: E[1][number][0]['type']) => void,\n): void {\n const envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem: EnvelopeItem) => {\n const envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\n/**\n * Encode a string to UTF8.\n */\nfunction encodeUTF8(input: string, textEncoder?: TextEncoderInternal): Uint8Array {\n const utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nexport function serializeEnvelope(envelope: Envelope, textEncoder?: TextEncoderInternal): string | Uint8Array {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts: string | Uint8Array[] = JSON.stringify(envHeaders);\n\n function append(next: string | Uint8Array): void {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload: string;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\ninterface TextDecoderInternal {\n decode(input?: Uint8Array): string;\n}\n\n/**\n * Parses an envelope\n */\nexport function parseEnvelope(\n env: string | Uint8Array,\n textEncoder: TextEncoderInternal,\n textDecoder: TextDecoderInternal,\n): Envelope {\n let buffer = typeof env === 'string' ? textEncoder.encode(env) : env;\n\n function readBinary(length: number): Uint8Array {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson<T>(): T {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(textDecoder.decode(readBinary(i))) as T;\n }\n\n const envelopeHeader = readJson<BaseEnvelopeHeaders>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items: [any, any][] = [];\n\n while (buffer.length) {\n const itemHeader = readJson<BaseEnvelopeItemHeaders>();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates attachment envelope items\n */\nexport function createAttachmentEnvelopeItem(\n attachment: Attachment,\n textEncoder?: TextEncoderInternal,\n): AttachmentItem {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP: Record<EnvelopeItemType, DataCategory> = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n replay_event: 'replay_event',\n replay_recording: 'replay_recording',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nexport function envelopeItemTypeToDataCategory(type: EnvelopeItemType): DataCategory {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from from the metadata or an events */\nexport function getSdkMetadataForEnvelopeHeader(metadataOrEvent?: SdkMetadata | Event): SdkInfo | undefined {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nexport function createEventEnvelopeHeaders(\n event: Event,\n sdkInfo: SdkInfo | undefined,\n tunnel: string | undefined,\n dsn: DsnComponents,\n): EventEnvelopeHeaders {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n\n return {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n","import type { ClientOptions, Event, EventHint } from '@sentry/types';\nimport { dateTimestampInSeconds, normalize, resolvedSyncPromise, truncate, uuid4 } from '@sentry/utils';\n\nimport { Scope } from '../scope';\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * Note: This also triggers callbacks for `addGlobalEventProcessor`, but not `beforeSend`.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nexport function prepareEvent(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n scope?: Scope,\n): PromiseLike<Event | null> {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n const prepared: Event = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(\n prepared,\n options.integrations.map(i => i.name),\n );\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise<Event | null>(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n //\n // We need to check for the existence of `finalScope.getAttachments`\n // because `getAttachments` can be undefined if users are using an older version\n // of `@sentry/core` that does not have the `getAttachments` method.\n // See: https://github.com/getsentry/sentry-javascript/issues/5229\n if (finalScope) {\n // Collect attachments from the hint and scope\n if (finalScope.getAttachments) {\n const attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event: Event, options: ClientOptions): void {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized: Event = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n}\n","/* eslint-disable max-lines */\nimport type {\n Client,\n ClientOptions,\n DataCategory,\n DsnComponents,\n Envelope,\n ErrorEvent,\n Event,\n EventDropReason,\n EventHint,\n Integration,\n IntegrationClass,\n Outcome,\n SdkMetadata,\n Session,\n SessionAggregates,\n Severity,\n SeverityLevel,\n TransactionEvent,\n Transport,\n} from '@sentry/types';\nimport {\n addItemToEnvelope,\n checkOrSetAlreadyCaught,\n createAttachmentEnvelopeItem,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n rejectedSyncPromise,\n resolvedSyncPromise,\n SentryError,\n SyncPromise,\n} from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport type { IntegrationIndex } from './integration';\nimport { setupIntegration, setupIntegrations } from './integration';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport { prepareEvent } from './utils/prepareEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient<O extends ClientOptions> implements Client<O> {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n protected readonly _transport?: Transport;\n\n /** Array of set up integrations. */\n protected _integrations: IntegrationIndex = {};\n\n /** Indicates whether this client's integrations have been set up. */\n protected _integrationsInitialized: boolean = false;\n\n /** Number of calls being processed */\n protected _numProcessing: number = 0;\n\n /** Holds flushable */\n private _outcomes: { [key: string]: number } = {};\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n protected constructor(options: O) {\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n __DEBUG_BUILD__ && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n __DEBUG_BUILD__ && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n scope?: Scope,\n ): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n __DEBUG_BUILD__ && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!this._isEnabled()) {\n __DEBUG_BUILD__ && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n __DEBUG_BUILD__ && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n public getSdkMetadata(): SdkMetadata | undefined {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport | undefined {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike<boolean> {\n const transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike<boolean> {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(): void {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n public getIntegrationById(integrationId: string): Integration | undefined {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration<T extends Integration>(integration: IntegrationClass<T>): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n __DEBUG_BUILD__ && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public addIntegration(integration: Integration): void {\n setupIntegration(integration, this._integrations);\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event, hint: EventHint = {}): void {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session | SessionAggregates): void {\n if (this._dsn) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n public recordDroppedEvent(reason: EventDropReason, category: DataCategory, _event?: Event): void {\n // Note: we use `event` in replay, where we overwrite this hook.\n\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n __DEBUG_BUILD__ && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike<boolean> {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike<Event | null> {\n const options = this.getOptions();\n return prepareEvent(options, event, hint, scope);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint: EventHint = {}, scope?: Scope): PromiseLike<string | undefined> {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (__DEBUG_BUILD__) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason as SentryError;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike<Event> {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.', 'log'));\n }\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', eventType, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error', event);\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n changes: [\n ...transactionInfo.changes,\n {\n source,\n // use the same timestamp as the processed event.\n timestamp: processedEvent.timestamp as number,\n propagations: transactionInfo.propagations,\n },\n ],\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason as Error,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process<T>(promise: PromiseLike<T>): void {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n protected _sendEnvelope(envelope: Envelope): void {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n __DEBUG_BUILD__ && logger.error('Error while sending event:', reason);\n });\n } else {\n __DEBUG_BUILD__ && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n protected _clearOutcomes(): Outcome[] {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public abstract eventFromException(_exception: any, _hint?: EventHint): PromiseLike<Event>;\n\n /**\n * @inheritDoc\n */\n public abstract eventFromMessage(\n _message: string,\n // eslint-disable-next-line deprecation/deprecation\n _level?: Severity | SeverityLevel,\n _hint?: EventHint,\n ): PromiseLike<Event>;\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult: PromiseLike<Event | null> | Event | null,\n beforeSendLabel: string,\n): PromiseLike<Event | null> | Event | null {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n): PromiseLike<Event | null> | Event | null {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n","import { getCurrentHub } from '@sentry/core';\nimport type { Event, EventHint, Exception, Severity, SeverityLevel, StackFrame, StackParser } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nexport function exceptionFromError(stackParser: StackParser, ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n stackParser: StackParser,\n exception: Record<string, unknown>,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception as { values: Exception[] }).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(stackParser: StackParser, ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(\n stackParser: StackParser,\n ex: Error & { framesToPop?: number; stacktrace?: string },\n): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n stackParser: StackParser,\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(stackParser, errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception as DOMError) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(stackParser, exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record<string, unknown>;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(\n stackParser: StackParser,\n input: string,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n","import { captureException, withScope } from '@sentry/core';\nimport type { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getOriginalFunction,\n GLOBAL_OBJ,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped: WrappedFunction = function (this: unknown): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(this: void): void;\n}\n","/* eslint-disable deprecation/deprecation */\nimport type { Severity, SeverityLevel } from '@sentry/types';\n\n// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nexport const validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: Severity | SeverityLevel | string): Severity {\n return severityLevelFromString(level) as Severity;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') as SeverityLevel;\n}\n","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nexport function getNumberOfUrlSegments(url: string): number {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport type { Event, Integration } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n htmlTreeAsString,\n logger,\n parseUrl,\n safeJoin,\n severityLevelFromString,\n} from '@sentry/utils';\n\nimport { WINDOW } from '../helpers';\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nexport const BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = BREADCRUMB_INTEGRATION_ID;\n\n /**\n * @inheritDoc\n */\n public name: string = Breadcrumbs.id;\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n public readonly options: Readonly<BreadcrumbsOptions>;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial<BreadcrumbsOptions>) {\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n\n /**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\n public addSentryBreadcrumb(event: Event): void {\n if (this.options.sentry) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n }\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: string]: any }) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData: { [key: string]: any }): void {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target as Node, { keyAttrs, maxStringLength })\n : htmlTreeAsString(handlerData.event as unknown as Node, { keyAttrs, maxStringLength });\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData: { [key: string]: any }): void {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/6010\n // see: https://github.com/getsentry/sentry-javascript/issues/5916\n for (let i = 0; i < handlerData.args.length; i++) {\n if (handlerData.args[i] === 'ref=Ref<') {\n handlerData.args[i + 1] = 'viewRef';\n break;\n }\n }\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData: { [key: string]: any }): void {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData: { [key: string]: any }): void {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData: { [key: string]: any }): void {\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n","import type { Scope } from '@sentry/core';\nimport { BaseClient, getEnvelopeEndpointWithUrlEncodedAuth, SDK_VERSION } from '@sentry/core';\nimport type {\n BrowserClientReplayOptions,\n ClientOptions,\n Event,\n EventHint,\n Options,\n Severity,\n SeverityLevel,\n} from '@sentry/types';\nimport { createClientReportEnvelope, dsnToString, logger, serializeEnvelope } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { WINDOW } from './helpers';\nimport type { Breadcrumbs } from './integrations';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs';\nimport type { BrowserTransportOptions } from './transports/types';\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\nexport type BrowserOptions = Options<BrowserTransportOptions> & BrowserClientReplayOptions;\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport type BrowserClientOptions = ClientOptions<BrowserTransportOptions>;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient<BrowserClientOptions> {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserClientOptions) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event> {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n ): PromiseLike<Event> {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event, hint?: EventHint): void {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n const breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) as Breadcrumbs | undefined;\n // We check for definedness of `addSentryBreadcrumb` in case users provided their own integration with id\n // \"Breadcrumbs\" that does not have this function.\n if (breadcrumbIntegration && breadcrumbIntegration.addSentryBreadcrumb) {\n breadcrumbIntegration.addSentryBreadcrumb(event);\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike<Event | null> {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n private _flushOutcomes(): void {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n __DEBUG_BUILD__ && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n __DEBUG_BUILD__ && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n __DEBUG_BUILD__ && logger.log('Sending outcomes:', outcomes);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options);\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n const isRealNavigator = Object.prototype.toString.call(WINDOW && WINDOW.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof WINDOW.navigator.sendBeacon === 'function';\n // Make sure beacon is not used if user configures custom transport options\n if (hasSendBeacon && !this._options.transportOptions) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = WINDOW.navigator.sendBeacon.bind(WINDOW.navigator);\n sendBeacon(url, serializeEnvelope(envelope));\n } else {\n // If beacon is not supported or if they are using the tunnel option\n // use our regular transport to send client reports to Sentry.\n this._sendEnvelope(envelope);\n }\n } catch (e) {\n __DEBUG_BUILD__ && logger.error(e);\n }\n }\n}\n","import type { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope<ClientReportEnvelope>(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","import type { StackFrame, StackLineParser, StackLineParserFn } from '@sentry/types';\nimport { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import type { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\n\nimport { WINDOW, wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string = TryCatch.id;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial<TryCatchOptions>) {\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n if (this._options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n}\n\n/** JSDoc */\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: () => void): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport type { Event, EventHint, Hub, Integration, Primitive, StackParser } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport type { BrowserClient } from '../client';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record<GlobalHandlersIntegrationsOptionKeys, boolean>;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record<GlobalHandlersIntegrationsOptionKeys, (() => void) | undefined> = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n __DEBUG_BUILD__ && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions(): [Hub, StackParser, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient<BrowserClient>();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport type { Event, EventHint, Exception, ExtendedError, Integration, StackParser } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport type { BrowserClient } from '../client';\nimport { exceptionFromError } from '../eventbuilder';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial<LinkedErrorsOptions> = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n const client = getCurrentHub().getClient<BrowserClient>();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(\n parser: StackParser,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(parser, limit, hint.originalException as ExtendedError, key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nexport function _walkErrorTree(\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n stack: Exception[] = [],\n): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n","import type { Event, EventProcessor, Exception, Hub, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string = Dedupe.id;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const eventProcessor: EventProcessor = currentEvent => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n __DEBUG_BUILD__ && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport type { Event, Integration } from '@sentry/types';\n\nimport { WINDOW } from '../helpers';\n\n/** HttpContext integration collects information about HTTP request headers */\nexport class HttpContext implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'HttpContext';\n\n /**\n * @inheritDoc\n */\n public name: string = HttpContext.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n}\n","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer<T> {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array<PromiseLike<T>>;\n add(taskProducer: () => PromiseLike<T>): PromiseLike<T>;\n drain(timeout?: number): PromiseLike<boolean>;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer<T>(limit?: number): PromiseBuffer<T> {\n const buffer: Array<PromiseLike<T>> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n function remove(task: PromiseLike<T>): PromiseLike<T> {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike<T>): PromiseLike<T> {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike<boolean> {\n return new SyncPromise<boolean>((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","import type { TransportMakeRequestResponse } from '@sentry/types';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record<string, number>;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n { statusCode, headers }: TransportMakeRequestResponse,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n","import type {\n Envelope,\n EnvelopeItem,\n EnvelopeItemType,\n Event,\n EventDropReason,\n EventItem,\n InternalBaseTransportOptions,\n Transport,\n TransportMakeRequestResponse,\n TransportRequestExecutor,\n} from '@sentry/types';\nimport type { PromiseBuffer, RateLimits } from '@sentry/utils';\nimport {\n createEnvelope,\n envelopeItemTypeToDataCategory,\n forEachEnvelopeItem,\n isRateLimited,\n logger,\n makePromiseBuffer,\n resolvedSyncPromise,\n SentryError,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer<void | TransportMakeRequestResponse> = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n): Transport {\n let rateLimits: RateLimits = {};\n\n const flush = (timeout?: number): PromiseLike<boolean> => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike<void | TransportMakeRequestResponse> {\n const filteredEnvelopeItems: EnvelopeItem[] = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope: Envelope = createEnvelope(envelope[0], filteredEnvelopeItems as any);\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason: EventDropReason): void => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = (): PromiseLike<void | TransportMakeRequestResponse> =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n __DEBUG_BUILD__ && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n __DEBUG_BUILD__ && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item: Envelope[1][number], type: EnvelopeItemType): Event | undefined {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item as EventItem)[1] : undefined;\n}\n","import { isNativeFetch, logger } from '@sentry/utils';\n\nimport { WINDOW } from '../helpers';\n\nlet cachedFetchImpl: FetchImpl | undefined = undefined;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n __DEBUG_BUILD__ &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nexport function clearCachedFetchImplementation(): void {\n cachedFetchImpl = undefined;\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\nimport type { FetchImpl } from './utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n options: BrowserTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): Transport {\n function makeRequest(request: TransportRequest): PromiseLike<TransportMakeRequestResponse> {\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch), a request with `keepalive: true`\n // and a content length of > 64 kibibytes returns a network error. We will therefore only activate the flag when\n // we're below that limit.\n keepalive: request.body.length <= 65536,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n } catch (e) {\n clearCachedFetchImplementation();\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeXHRTransport(options: BrowserTransportOptions): Transport {\n function makeRequest(request: TransportRequest): PromiseLike<TransportMakeRequestResponse> {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n","import type { Hub } from '@sentry/core';\nimport {\n getCurrentHub,\n getIntegrationsToSetup,\n getReportDialogEndpoint,\n initAndBind,\n Integrations as CoreIntegrations,\n} from '@sentry/core';\nimport {\n addInstrumentationHandler,\n logger,\n resolvedSyncPromise,\n stackParserFromStackParserOptions,\n supportsFetch,\n} from '@sentry/utils';\n\nimport type { BrowserClientOptions, BrowserOptions } from './client';\nimport { BrowserClient } from './client';\nimport type { ReportDialogOptions } from './helpers';\nimport { WINDOW, wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, HttpContext, LinkedErrors, TryCatch } from './integrations';\nimport { defaultStackParser } from './stack-parsers';\nimport { makeFetchTransport, makeXHRTransport } from './transports';\n\nexport const defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\ndeclare const __SENTRY_RELEASE__: string | undefined;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n if (typeof __SENTRY_RELEASE__ === 'string') {\n options.release = __SENTRY_RELEASE__;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions: BrowserClientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}, hub: Hub = getCurrentHub()): void {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n __DEBUG_BUILD__ && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n __DEBUG_BUILD__ && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n __DEBUG_BUILD__ && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function flush(timeout?: number): PromiseLike<boolean> {\n const client = getCurrentHub().getClient<BrowserClient>();\n if (client) {\n return client.flush(timeout);\n }\n __DEBUG_BUILD__ && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function close(timeout?: number): PromiseLike<boolean> {\n const client = getCurrentHub().getClient<BrowserClient>();\n if (client) {\n return client.close(timeout);\n }\n __DEBUG_BUILD__ && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\nfunction startSessionOnHub(hub: Hub): void {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n if (typeof WINDOW.document === 'undefined') {\n __DEBUG_BUILD__ &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n","import type { Client, ClientOptions } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { getCurrentHub } from './hub';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass<F extends Client, O extends ClientOptions> = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind<F extends Client, O extends ClientOptions>(\n clientClass: ClientClass<F, O>,\n options: O,\n): void {\n if (options.debug === true) {\n if (__DEBUG_BUILD__) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n","import type {\n Breadcrumb,\n CaptureContext,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Primitive,\n Severity,\n SeverityLevel,\n TransactionContext,\n User,\n} from '@sentry/types';\n\nimport type { Hub } from './hub';\nimport { getCurrentHub } from './hub';\nimport type { Scope } from './scope';\n\n// Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception: any, captureContext?: CaptureContext): ReturnType<Hub['captureException']> {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n captureContext?: CaptureContext | Severity | SeverityLevel,\n): ReturnType<Hub['captureMessage']> {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event: Event, hint?: EventHint): ReturnType<Hub['captureEvent']> {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback: (scope: Scope) => void): ReturnType<Hub['configureScope']> {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb): ReturnType<Hub['addBreadcrumb']> {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name: string, context: { [key: string]: any } | null): ReturnType<Hub['setContext']> {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): ReturnType<Hub['setExtras']> {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): ReturnType<Hub['setExtra']> {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): ReturnType<Hub['setTags']> {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): ReturnType<Hub['setTag']> {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): ReturnType<Hub['setUser']> {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback: (scope: Scope) => void): ReturnType<Hub['withScope']> {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): ReturnType<Hub['startTransaction']> {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalSingleton,\n GLOBAL_OBJ,\n isNodeEnv,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient<C extends Client>(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n ): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration<T extends Integration>(integration: IntegrationClass<T>): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n __DEBUG_BUILD__ && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n public shouldSendDefaultPii(): boolean {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n private _withClient(callback: (client: Client, scope: Scope | undefined) => void): void {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod<T>(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n __DEBUG_BUILD__ && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n return getGlobalSingleton<Hub>('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","/* eslint-disable max-lines */\nimport type {\n Attachment,\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Session,\n Severity,\n SeverityLevel,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport {\n arrayify,\n dateTimestampInSeconds,\n getGlobalSingleton,\n isPlainObject,\n isThenable,\n logger,\n SyncPromise,\n} from '@sentry/utils';\n\nimport { updateSession } from './session';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: { [key: string]: unknown };\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n protected _level?: Severity | SeverityLevel;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel,\n ): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as <T>(scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getAttachments(): Attachment[] {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n public applyToEvent(event: Event, hint: EventHint = {}): PromiseLike<Event | null> {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n ): PromiseLike<Event | null> {\n return new SyncPromise<Event | null>((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n\n __DEBUG_BUILD__ &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton<EventProcessor[]>('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit<SessionContext, 'started' | 'status'>): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude<SessionStatus, 'ok'>): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n","export const SDK_VERSION = '7.31.1';\n","import { isString } from './is';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement<Element>('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getDomElement<E = any>(selector: string): E | null {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) as unknown as E;\n }\n return null;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { PolymorphicEvent, Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record<string, unknown> {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike<any> {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","import type { WrappedFunction } from '@sentry/types';\n\nimport { getGlobalSingleton, GLOBAL_OBJ } from './worldwide';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] as const;\nexport type ConsoleLevel = typeof CONSOLE_LEVELS[number];\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record<typeof CONSOLE_LEVELS[number], LoggerMethod>;\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox<T>(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console as Console & Record<string, unknown>;\n const wrappedLevels: Partial<LoggerConsoleMethods> = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] as WrappedFunction).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] as LoggerConsoleMethods[typeof level];\n originalConsole[level] = originalWrappedFunc as Console[typeof level];\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level as typeof CONSOLE_LEVELS[number]];\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial<Logger> = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if (__DEBUG_BUILD__) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger: Logger;\nif (__DEBUG_BUILD__) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { logger };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n getRandomValues(array: Uint8Array): Uint8Array;\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n const getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '<unknown>';\n }\n return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial<Mechanism>): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify<T = unknown>(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule<T>(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: { [key: string]: unknown }, name: string, value: unknown): void {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject<V>(value: V):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj as Record<string, unknown>)[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record<string, unknown>, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nexport function dropUndefinedKeys<T>(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map<unknown, unknown>();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys<T>(inputValue: T, memoizationMap: Map<unknown, unknown>): T {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: { [key: string]: any } = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue as T;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: unknown[] = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item: unknown) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array<string | RegExp> = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString: string): string {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike<void>;\nexport function resolvedSyncPromise<T>(value: T | PromiseLike<T>): PromiseLike<T>;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise<T>(value?: T | PromiseLike<T>): PromiseLike<T> {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise<T = never>(reason?: any): PromiseLike<T> {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise<T> implements PromiseLike<T> {\n private _state: States = States.PENDING;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike<T> | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n ): PromiseLike<TResult1 | TResult2> {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n ): PromiseLike<T | TResult> {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally<TResult>(onfinally?: (() => void) | null): PromiseLike<TResult> {\n return new SyncPromise<TResult>((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike<T> | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike<T> | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike<T>).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { dynamicRequire, isNodeEnv } from './node';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Integration } from '@sentry/types';\n\n/** Internal global with common properties and Sentry extensions */\nexport interface InternalGlobal {\n navigator?: { userAgent?: string };\n console: Console;\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj: { Math?: Math }): any | undefined {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ: InternalGlobal =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function (this: any) {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nexport function getGlobalObject<T>(): T & InternalGlobal {\n return GLOBAL_OBJ as T & InternalGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton<T>(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const gbl = (obj || GLOBAL_OBJ) as InternalGlobal;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\nimport * as React from 'react';\n\n// Assertions\n\n/** @private is the value an empty array? */\nexport const isEmptyArray = (value?: any) =>\n Array.isArray(value) && value.length === 0;\n\n/** @private is the given object a Function? */\nexport const isFunction = (obj: any): obj is Function =>\n typeof obj === 'function';\n\n/** @private is the given object an Object? */\nexport const isObject = (obj: any): obj is Object =>\n obj !== null && typeof obj === 'object';\n\n/** @private is the given object an integer? */\nexport const isInteger = (obj: any): boolean =>\n String(Math.floor(Number(obj))) === obj;\n\n/** @private is the given object a string? */\nexport const isString = (obj: any): obj is string =>\n Object.prototype.toString.call(obj) === '[object String]';\n\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\nexport const isNaN = (obj: any): boolean => obj !== obj;\n\n/** @private Does a React component have exactly 0 children? */\nexport const isEmptyChildren = (children: any): boolean =>\n React.Children.count(children) === 0;\n\n/** @private is the given object/value a promise? */\nexport const isPromise = (value: any): value is PromiseLike<any> =>\n isObject(value) && isFunction(value.then);\n\n/** @private is the given object/value a type of synthetic event? */\nexport const isInputEvent = (value: any): value is React.SyntheticEvent<any> =>\n value && isObject(value) && isObject(value.target);\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?Document} doc Defaults to current document.\n * @return {Element | null}\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\n */\nexport function getActiveElement(doc?: Document): Element | null {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(\n obj: any,\n key: string | string[],\n def?: any,\n p: number = 0\n) {\n const path = toPath(key);\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n return obj === undefined ? def : obj;\n}\n\n/**\n * Deeply set a value from in object via it's path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n let res: any = clone(obj); // this keeps inheritance when obj is a class\n let resVal: any = res;\n let i = 0;\n let pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n const currentPath: string = pathArray[i];\n let currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n const nextPath: string = pathArray[i + 1];\n resVal = resVal[currentPath] =\n isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n }\n\n // Return original object if new value is the same as current\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n }\n\n // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n\n/**\n * Recursively a set the same value for all keys and arrays nested object, cloning\n * @param object\n * @param value\n * @param visited\n * @param response\n */\nexport function setNestedObjectValues<T>(\n object: any,\n value: any,\n visited: any = new WeakMap(),\n response: any = {}\n): T {\n for (let k of Object.keys(object)) {\n const val = object[k];\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true);\n // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport invariant from 'tiny-warning';\n\nexport const FormikContext = React.createContext<FormikContextType<any>>(\n undefined as any\n);\nFormikContext.displayName = 'FormikContext';\n\nexport const FormikProvider = FormikContext.Provider;\nexport const FormikConsumer = FormikContext.Consumer;\n\nexport function useFormikContext<Values>() {\n const formik = React.useContext<FormikContextType<Values>>(FormikContext);\n\n invariant(\n !!formik,\n `Formik context is undefined, please verify you are calling useFormikContext() as child of a <Formik> component.`\n );\n\n return formik;\n}\n","import * as React from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {\n FormikConfig,\n FormikErrors,\n FormikState,\n FormikTouched,\n FormikValues,\n FormikProps,\n FieldMetaProps,\n FieldHelperProps,\n FieldInputProps,\n FormikHelpers,\n FormikHandlers,\n} from './types';\nimport {\n isFunction,\n isString,\n setIn,\n isEmptyChildren,\n isPromise,\n setNestedObjectValues,\n getActiveElement,\n getIn,\n isObject,\n} from './utils';\nimport { FormikProvider } from './FormikContext';\nimport invariant from 'tiny-warning';\n\ntype FormikMessage<Values> =\n | { type: 'SUBMIT_ATTEMPT' }\n | { type: 'SUBMIT_FAILURE' }\n | { type: 'SUBMIT_SUCCESS' }\n | { type: 'SET_ISVALIDATING'; payload: boolean }\n | { type: 'SET_ISSUBMITTING'; payload: boolean }\n | { type: 'SET_VALUES'; payload: Values }\n | { type: 'SET_FIELD_VALUE'; payload: { field: string; value?: any } }\n | { type: 'SET_FIELD_TOUCHED'; payload: { field: string; value?: boolean } }\n | { type: 'SET_FIELD_ERROR'; payload: { field: string; value?: string } }\n | { type: 'SET_TOUCHED'; payload: FormikTouched<Values> }\n | { type: 'SET_ERRORS'; payload: FormikErrors<Values> }\n | { type: 'SET_STATUS'; payload: any }\n | {\n type: 'SET_FORMIK_STATE';\n payload: (s: FormikState<Values>) => FormikState<Values>;\n }\n | {\n type: 'RESET_FORM';\n payload: FormikState<Values>;\n };\n\n// State reducer\nfunction formikReducer<Values>(\n state: FormikState<Values>,\n msg: FormikMessage<Values>\n) {\n switch (msg.type) {\n case 'SET_VALUES':\n return { ...state, values: msg.payload };\n case 'SET_TOUCHED':\n return { ...state, touched: msg.payload };\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return { ...state, errors: msg.payload };\n case 'SET_STATUS':\n return { ...state, status: msg.payload };\n case 'SET_ISSUBMITTING':\n return { ...state, isSubmitting: msg.payload };\n case 'SET_ISVALIDATING':\n return { ...state, isValidating: msg.payload };\n case 'SET_FIELD_VALUE':\n return {\n ...state,\n values: setIn(state.values, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_TOUCHED':\n return {\n ...state,\n touched: setIn(state.touched, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_ERROR':\n return {\n ...state,\n errors: setIn(state.errors, msg.payload.field, msg.payload.value),\n };\n case 'RESET_FORM':\n return { ...state, ...msg.payload };\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n case 'SUBMIT_ATTEMPT':\n return {\n ...state,\n touched: setNestedObjectValues<FormikTouched<Values>>(\n state.values,\n true\n ),\n isSubmitting: true,\n submitCount: state.submitCount + 1,\n };\n case 'SUBMIT_FAILURE':\n return {\n ...state,\n isSubmitting: false,\n };\n case 'SUBMIT_SUCCESS':\n return {\n ...state,\n isSubmitting: false,\n };\n default:\n return state;\n }\n}\n\n// Initial empty states // objects\nconst emptyErrors: FormikErrors<unknown> = {};\nconst emptyTouched: FormikTouched<unknown> = {};\n\n// This is an object that contains a map of all registered fields\n// and their validate functions\ninterface FieldRegistry {\n [field: string]: {\n validate: (value: any) => string | Promise<string> | undefined;\n };\n}\n\nexport function useFormik<Values extends FormikValues = FormikValues>({\n validateOnChange = true,\n validateOnBlur = true,\n validateOnMount = false,\n isInitialValid,\n enableReinitialize = false,\n onSubmit,\n ...rest\n}: FormikConfig<Values>) {\n const props = {\n validateOnChange,\n validateOnBlur,\n validateOnMount,\n onSubmit,\n ...rest,\n };\n const initialValues = React.useRef(props.initialValues);\n const initialErrors = React.useRef(props.initialErrors || emptyErrors);\n const initialTouched = React.useRef(props.initialTouched || emptyTouched);\n const initialStatus = React.useRef(props.initialStatus);\n const isMounted = React.useRef<boolean>(false);\n const fieldRegistry = React.useRef<FieldRegistry>({});\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n typeof isInitialValid === 'undefined',\n 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.'\n );\n // eslint-disable-next-line\n }, []);\n }\n\n React.useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const [state, dispatch] = React.useReducer<\n React.Reducer<FormikState<Values>, FormikMessage<Values>>\n >(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0,\n });\n\n const runValidateHandler = React.useCallback(\n (values: Values, field?: string): Promise<FormikErrors<Values>> => {\n return new Promise((resolve, reject) => {\n const maybePromisedErrors = (props.validate as any)(values, field);\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n (maybePromisedErrors as Promise<any>).then(\n errors => {\n resolve(errors || emptyErrors);\n },\n actualException => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in <Formik validate />`,\n actualException\n );\n }\n\n reject(actualException);\n }\n );\n } else {\n resolve(maybePromisedErrors);\n }\n });\n },\n [props.validate]\n );\n\n /**\n * Run validation against a Yup schema and optionally run a function if successful\n */\n const runValidationSchema = React.useCallback(\n (values: Values, field?: string): Promise<FormikErrors<Values>> => {\n const validationSchema = props.validationSchema;\n const schema = isFunction(validationSchema)\n ? validationSchema(field)\n : validationSchema;\n const promise =\n field && schema.validateAt\n ? schema.validateAt(field, values)\n : validateYupSchema(values, schema);\n return new Promise((resolve, reject) => {\n promise.then(\n () => {\n resolve(emptyErrors);\n },\n (err: any) => {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in <Formik validationSchema />`,\n err\n );\n }\n\n reject(err);\n }\n }\n );\n });\n },\n [props.validationSchema]\n );\n\n const runSingleFieldLevelValidation = React.useCallback(\n (field: string, value: void | string): Promise<string> => {\n return new Promise(resolve =>\n resolve(fieldRegistry.current[field].validate(value) as string)\n );\n },\n []\n );\n\n const runFieldLevelValidations = React.useCallback(\n (values: Values): Promise<FormikErrors<Values>> => {\n const fieldKeysWithValidation: string[] = Object.keys(\n fieldRegistry.current\n ).filter(f => isFunction(fieldRegistry.current[f].validate));\n\n // Construct an array with all of the field validation functions\n const fieldValidations: Promise<string>[] =\n fieldKeysWithValidation.length > 0\n ? fieldKeysWithValidation.map(f =>\n runSingleFieldLevelValidation(f, getIn(values, f))\n )\n : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then((fieldErrorsList: string[]) =>\n fieldErrorsList.reduce((prev, curr, index) => {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n return prev;\n }, {})\n );\n },\n [runSingleFieldLevelValidation]\n );\n\n // Run all validations and return the result\n const runAllValidations = React.useCallback(\n (values: Values) => {\n return Promise.all([\n runFieldLevelValidations(values),\n props.validationSchema ? runValidationSchema(values) : {},\n props.validate ? runValidateHandler(values) : {},\n ]).then(([fieldErrors, schemaErrors, validateErrors]) => {\n const combinedErrors = deepmerge.all<FormikErrors<Values>>(\n [fieldErrors, schemaErrors, validateErrors],\n { arrayMerge }\n );\n return combinedErrors;\n });\n },\n [\n props.validate,\n props.validationSchema,\n runFieldLevelValidations,\n runValidateHandler,\n runValidationSchema,\n ]\n );\n\n // Run all validations methods and update state accordingly\n const validateFormWithHighPriority = useEventCallback(\n (values: Values = state.values) => {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runAllValidations(values).then(combinedErrors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n dispatch({ type: 'SET_ERRORS', payload: combinedErrors });\n }\n return combinedErrors;\n });\n }\n );\n\n React.useEffect(() => {\n if (\n validateOnMount &&\n isMounted.current === true &&\n isEqual(initialValues.current, props.initialValues)\n ) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n\n const resetForm = React.useCallback(\n (nextState?: Partial<FormikState<Values>>) => {\n const values =\n nextState && nextState.values\n ? nextState.values\n : initialValues.current;\n const errors =\n nextState && nextState.errors\n ? nextState.errors\n : initialErrors.current\n ? initialErrors.current\n : props.initialErrors || {};\n const touched =\n nextState && nextState.touched\n ? nextState.touched\n : initialTouched.current\n ? initialTouched.current\n : props.initialTouched || {};\n const status =\n nextState && nextState.status\n ? nextState.status\n : initialStatus.current\n ? initialStatus.current\n : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n const dispatchFn = () => {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors,\n touched,\n status,\n values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount:\n !!nextState &&\n !!nextState.submitCount &&\n typeof nextState.submitCount === 'number'\n ? nextState.submitCount\n : 0,\n },\n });\n };\n\n if (props.onReset) {\n const maybePromisedOnReset = (props.onReset as any)(\n state.values,\n imperativeMethods\n );\n\n if (isPromise(maybePromisedOnReset)) {\n (maybePromisedOnReset as Promise<any>).then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n },\n [props.initialErrors, props.initialStatus, props.initialTouched]\n );\n\n React.useEffect(() => {\n if (\n isMounted.current === true &&\n !isEqual(initialValues.current, props.initialValues)\n ) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [\n enableReinitialize,\n props.initialValues,\n resetForm,\n validateOnMount,\n validateFormWithHighPriority,\n ]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialErrors.current, props.initialErrors)\n ) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors,\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialTouched.current, props.initialTouched)\n ) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched,\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialStatus.current, props.initialStatus)\n ) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus,\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n\n const validateField = useEventCallback((name: string) => {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n\n if (\n fieldRegistry.current[name] &&\n isFunction(fieldRegistry.current[name].validate)\n ) {\n const value = getIn(state.values, name);\n const maybePromise = fieldRegistry.current[name].validate(value);\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return maybePromise\n .then((x: any) => x)\n .then((error: string) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise as string | undefined,\n },\n });\n return Promise.resolve(maybePromise as string | undefined);\n }\n } else if (props.validationSchema) {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runValidationSchema(state.values, name)\n .then((x: any) => x)\n .then((error: any) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error[name] },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n }\n\n return Promise.resolve();\n });\n\n const registerField = React.useCallback((name: string, { validate }: any) => {\n fieldRegistry.current[name] = {\n validate,\n };\n }, []);\n\n const unregisterField = React.useCallback((name: string) => {\n delete fieldRegistry.current[name];\n }, []);\n\n const setTouched = useEventCallback(\n (touched: FormikTouched<Values>, shouldValidate?: boolean) => {\n dispatch({ type: 'SET_TOUCHED', payload: touched });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const setErrors = React.useCallback((errors: FormikErrors<Values>) => {\n dispatch({ type: 'SET_ERRORS', payload: errors });\n }, []);\n\n const setValues = useEventCallback(\n (values: React.SetStateAction<Values>, shouldValidate?: boolean) => {\n const resolvedValues = isFunction(values) ? values(state.values) : values;\n\n dispatch({ type: 'SET_VALUES', payload: resolvedValues });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(resolvedValues)\n : Promise.resolve();\n }\n );\n\n const setFieldError = React.useCallback(\n (field: string, value: string | undefined) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field, value },\n });\n },\n []\n );\n\n const setFieldValue = useEventCallback(\n (field: string, value: any, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field,\n value,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(setIn(state.values, field, value))\n : Promise.resolve();\n }\n );\n\n const executeChange = React.useCallback(\n (eventOrTextValue: string | React.ChangeEvent<any>, maybePath?: string) => {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n let field = maybePath;\n let val = eventOrTextValue;\n let parsed;\n // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if ((eventOrTextValue as any).persist) {\n (eventOrTextValue as React.ChangeEvent<any>).persist();\n }\n const target = eventOrTextValue.target\n ? (eventOrTextValue as React.ChangeEvent<any>).target\n : (eventOrTextValue as React.ChangeEvent<any>).currentTarget;\n\n const {\n type,\n name,\n id,\n value,\n checked,\n outerHTML,\n options,\n multiple,\n } = target;\n\n field = maybePath ? maybePath : name ? name : id;\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange',\n });\n }\n val = /number|range/.test(type)\n ? ((parsed = parseFloat(value)), isNaN(parsed) ? '' : parsed)\n : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field!), checked, value)\n : options && multiple // <select multiple>\n ? getSelectedValues(options)\n : value;\n }\n\n if (field) {\n // Set form fields by name\n setFieldValue(field, val);\n }\n },\n [setFieldValue, state.values]\n );\n\n const handleChange = useEventCallback<FormikHandlers['handleChange']>(\n (\n eventOrPath: string | React.ChangeEvent<any>\n ): void | ((eventOrTextValue: string | React.ChangeEvent<any>) => void) => {\n if (isString(eventOrPath)) {\n return event => executeChange(event, eventOrPath);\n } else {\n executeChange(eventOrPath);\n }\n }\n );\n\n const setFieldTouched = useEventCallback(\n (field: string, touched: boolean = true, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_TOUCHED',\n payload: {\n field,\n value: touched,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const executeBlur = React.useCallback(\n (e: any, path?: string) => {\n if (e.persist) {\n e.persist();\n }\n const { name, id, outerHTML } = e.target;\n const field = path ? path : name ? name : id;\n\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handleblur-e-any--void',\n handlerName: 'handleBlur',\n });\n }\n\n setFieldTouched(field, true);\n },\n [setFieldTouched]\n );\n\n const handleBlur = useEventCallback<FormikHandlers['handleBlur']>(\n (eventOrString: any): void | ((e: any) => void) => {\n if (isString(eventOrString)) {\n return event => executeBlur(event, eventOrString);\n } else {\n executeBlur(eventOrString);\n }\n }\n );\n\n const setFormikState = React.useCallback(\n (\n stateOrCb:\n | FormikState<Values>\n | ((state: FormikState<Values>) => FormikState<Values>)\n ): void => {\n if (isFunction(stateOrCb)) {\n dispatch({ type: 'SET_FORMIK_STATE', payload: stateOrCb });\n } else {\n dispatch({ type: 'SET_FORMIK_STATE', payload: () => stateOrCb });\n }\n },\n []\n );\n\n const setStatus = React.useCallback((status: any) => {\n dispatch({ type: 'SET_STATUS', payload: status });\n }, []);\n\n const setSubmitting = React.useCallback((isSubmitting: boolean) => {\n dispatch({ type: 'SET_ISSUBMITTING', payload: isSubmitting });\n }, []);\n\n const submitForm = useEventCallback(() => {\n dispatch({ type: 'SUBMIT_ATTEMPT' });\n return validateFormWithHighPriority().then(\n (combinedErrors: FormikErrors<Values>) => {\n // In case an error was thrown and passed to the resolved Promise,\n // `combinedErrors` can be an instance of an Error. We need to check\n // that and abort the submit.\n // If we don't do that, calling `Object.keys(new Error())` yields an\n // empty array, which causes the validation to pass and the form\n // to be submitted.\n\n const isInstanceOfError = combinedErrors instanceof Error;\n const isActuallyValid =\n !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n if (isActuallyValid) {\n // Proceed with submit...\n //\n // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n // This would be fine in simple cases, but make it impossible to disable submit\n // buttons where people use callbacks or promises as side effects (which is basically\n // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n // so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n // cleanup of isSubmitting on behalf of the consumer.\n let promiseOrUndefined;\n try {\n promiseOrUndefined = executeSubmit();\n // Bail if it's sync, consumer is responsible for cleaning up\n // via setSubmitting(false)\n if (promiseOrUndefined === undefined) {\n return;\n }\n } catch (error) {\n throw error;\n }\n\n return Promise.resolve(promiseOrUndefined)\n .then(result => {\n if (!!isMounted.current) {\n dispatch({ type: 'SUBMIT_SUCCESS' });\n }\n return result;\n })\n .catch(_errors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SUBMIT_FAILURE' });\n // This is a legit error rejected by the onSubmit fn\n // so we don't want to break the promise chain\n throw _errors;\n }\n });\n } else if (!!isMounted.current) {\n // ^^^ Make sure Formik is still mounted before updating state\n dispatch({ type: 'SUBMIT_FAILURE' });\n // throw combinedErrors;\n if (isInstanceOfError) {\n throw combinedErrors;\n }\n }\n return;\n }\n );\n });\n\n const handleSubmit = useEventCallback(\n (e?: React.FormEvent<HTMLFormElement>) => {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n // Warn if form submission is triggered by a <button> without a\n // specified `type` attribute during development. This mitigates\n // a common gotcha in forms with both reset and submit buttons,\n // where the dev forgets to add type=\"button\" to the reset button.\n if (__DEV__ && typeof document !== 'undefined') {\n // Safely get the active element (works with IE)\n const activeElement = getActiveElement();\n if (\n activeElement !== null &&\n activeElement instanceof HTMLButtonElement\n ) {\n invariant(\n activeElement.attributes &&\n activeElement.attributes.getNamedItem('type'),\n 'You submitted a Formik form using a button with an unspecified `type` attribute. Most browsers default button elements to `type=\"submit\"`. If this is not a submit button, please add `type=\"button\"`.'\n );\n }\n }\n\n submitForm().catch(reason => {\n console.warn(\n `Warning: An unhandled error was caught from submitForm()`,\n reason\n );\n });\n }\n );\n\n const imperativeMethods: FormikHelpers<Values> = {\n resetForm,\n validateForm: validateFormWithHighPriority,\n validateField,\n setErrors,\n setFieldError,\n setFieldTouched,\n setFieldValue,\n setStatus,\n setSubmitting,\n setTouched,\n setValues,\n setFormikState,\n submitForm,\n };\n\n const executeSubmit = useEventCallback(() => {\n return onSubmit(state.values, imperativeMethods);\n });\n\n const handleReset = useEventCallback(e => {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n resetForm();\n });\n\n const getFieldMeta = React.useCallback(\n (name: string): FieldMetaProps<any> => {\n return {\n value: getIn(state.values, name),\n error: getIn(state.errors, name),\n touched: !!getIn(state.touched, name),\n initialValue: getIn(initialValues.current, name),\n initialTouched: !!getIn(initialTouched.current, name),\n initialError: getIn(initialErrors.current, name),\n };\n },\n [state.errors, state.touched, state.values]\n );\n\n const getFieldHelpers = React.useCallback(\n (name: string): FieldHelperProps<any> => {\n return {\n setValue: (value: any, shouldValidate?: boolean) =>\n setFieldValue(name, value, shouldValidate),\n setTouched: (value: boolean, shouldValidate?: boolean) =>\n setFieldTouched(name, value, shouldValidate),\n setError: (value: any) => setFieldError(name, value),\n };\n },\n [setFieldValue, setFieldTouched, setFieldError]\n );\n\n const getFieldProps = React.useCallback(\n (nameOrOptions): FieldInputProps<any> => {\n const isAnObject = isObject(nameOrOptions);\n const name = isAnObject ? nameOrOptions.name : nameOrOptions;\n const valueState = getIn(state.values, name);\n\n const field: FieldInputProps<any> = {\n name,\n value: valueState,\n onChange: handleChange,\n onBlur: handleBlur,\n };\n if (isAnObject) {\n const {\n type,\n value: valueProp, // value is special for checkboxes\n as: is,\n multiple,\n } = nameOrOptions;\n\n if (type === 'checkbox') {\n if (valueProp === undefined) {\n field.checked = !!valueState;\n } else {\n field.checked = !!(\n Array.isArray(valueState) && ~valueState.indexOf(valueProp)\n );\n field.value = valueProp;\n }\n } else if (type === 'radio') {\n field.checked = valueState === valueProp;\n field.value = valueProp;\n } else if (is === 'select' && multiple) {\n field.value = field.value || [];\n field.multiple = true;\n }\n }\n return field;\n },\n [handleBlur, handleChange, state.values]\n );\n\n const dirty = React.useMemo(\n () => !isEqual(initialValues.current, state.values),\n [initialValues.current, state.values]\n );\n\n const isValid = React.useMemo(\n () =>\n typeof isInitialValid !== 'undefined'\n ? dirty\n ? state.errors && Object.keys(state.errors).length === 0\n : isInitialValid !== false && isFunction(isInitialValid)\n ? (isInitialValid as (props: FormikConfig<Values>) => boolean)(props)\n : (isInitialValid as boolean)\n : state.errors && Object.keys(state.errors).length === 0,\n [isInitialValid, dirty, state.errors, props]\n );\n\n const ctx = {\n ...state,\n initialValues: initialValues.current,\n initialErrors: initialErrors.current,\n initialTouched: initialTouched.current,\n initialStatus: initialStatus.current,\n handleBlur,\n handleChange,\n handleReset,\n handleSubmit,\n resetForm,\n setErrors,\n setFormikState,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n setStatus,\n setSubmitting,\n setTouched,\n setValues,\n submitForm,\n validateForm: validateFormWithHighPriority,\n validateField,\n isValid,\n dirty,\n unregisterField,\n registerField,\n getFieldProps,\n getFieldMeta,\n getFieldHelpers,\n validateOnBlur,\n validateOnChange,\n validateOnMount,\n };\n\n return ctx;\n}\n\nexport function Formik<\n Values extends FormikValues = FormikValues,\n ExtraProps = {}\n>(props: FormikConfig<Values> & ExtraProps) {\n const formikbag = useFormik<Values>(props);\n const { component, children, render, innerRef } = props;\n\n // This allows folks to pass a ref to <Formik />\n React.useImperativeHandle(innerRef, () => formikbag);\n\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n !props.render,\n `<Formik render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Formik render={(props) => ...} /> with <Formik>{(props) => ...}</Formik>`\n );\n // eslint-disable-next-line\n }, []);\n }\n return (\n <FormikProvider value={formikbag}>\n {component\n ? React.createElement(component as any, formikbag)\n : render\n ? render(formikbag)\n : children // children come last, always called\n ? isFunction(children)\n ? (children as (bag: FormikProps<Values>) => React.ReactNode)(\n formikbag as FormikProps<Values>\n )\n : !isEmptyChildren(children)\n ? React.Children.only(children)\n : null\n : null}\n </FormikProvider>\n );\n}\n\nfunction warnAboutMissingIdentifier({\n htmlContent,\n documentationAnchorLink,\n handlerName,\n}: {\n htmlContent: string;\n documentationAnchorLink: string;\n handlerName: string;\n}) {\n console.warn(\n `Warning: Formik called \\`${handlerName}\\`, but you forgot to pass an \\`id\\` or \\`name\\` attribute to your input:\n ${htmlContent}\n Formik cannot determine which value to update. For more info see https://formik.org/docs/api/formik#${documentationAnchorLink}\n `\n );\n}\n\n/**\n * Transform Yup ValidationError to a more usable object\n */\nexport function yupToFormErrors<Values>(yupError: any): FormikErrors<Values> {\n let errors: FormikErrors<Values> = {};\n if (yupError.inner) {\n if (yupError.inner.length === 0) {\n return setIn(errors, yupError.path, yupError.message);\n }\n for (let err of yupError.inner) {\n if (!getIn(errors, err.path)) {\n errors = setIn(errors, err.path, err.message);\n }\n }\n }\n return errors;\n}\n\n/**\n * Validate a yup schema.\n */\nexport function validateYupSchema<T extends FormikValues>(\n values: T,\n schema: any,\n sync: boolean = false,\n context: any = {}\n): Promise<Partial<T>> {\n const validateData: FormikValues = prepareDataForValidation(values);\n return schema[sync ? 'validateSync' : 'validate'](validateData, {\n abortEarly: false,\n context: context,\n });\n}\n\n/**\n * Recursively prepare values.\n */\nexport function prepareDataForValidation<T extends FormikValues>(\n values: T\n): FormikValues {\n let data: FormikValues = Array.isArray(values) ? [] : {};\n for (let k in values) {\n if (Object.prototype.hasOwnProperty.call(values, k)) {\n const key = String(k);\n if (Array.isArray(values[key]) === true) {\n data[key] = values[key].map((value: any) => {\n if (Array.isArray(value) === true || isPlainObject(value)) {\n return prepareDataForValidation(value);\n } else {\n return value !== '' ? value : undefined;\n }\n });\n } else if (isPlainObject(values[key])) {\n data[key] = prepareDataForValidation(values[key]);\n } else {\n data[key] = values[key] !== '' ? values[key] : undefined;\n }\n }\n }\n return data;\n}\n\n/**\n * deepmerge array merging algorithm\n * https://github.com/KyleAMathews/deepmerge#combine-array\n */\nfunction arrayMerge(target: any[], source: any[], options: any): any[] {\n const destination = target.slice();\n\n source.forEach(function merge(e: any, i: number) {\n if (typeof destination[i] === 'undefined') {\n const cloneRequested = options.clone !== false;\n const shouldClone = cloneRequested && options.isMergeableObject(e);\n destination[i] = shouldClone\n ? deepmerge(Array.isArray(e) ? [] : {}, e, options)\n : e;\n } else if (options.isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, options);\n } else if (target.indexOf(e) === -1) {\n destination.push(e);\n }\n });\n return destination;\n}\n\n/** Return multi select values based on an array of options */\nfunction getSelectedValues(options: any[]) {\n return Array.from(options)\n .filter(el => el.selected)\n .map(el => el.value);\n}\n\n/** Return the next value for a checkbox */\nfunction getValueForCheckbox(\n currentValue: string | any[],\n checked: boolean,\n valueProp: any\n) {\n // If the current value was a boolean, return a boolean\n if (typeof currentValue === 'boolean') {\n return Boolean(checked);\n }\n\n // If the currentValue was not a boolean we want to return an array\n let currentArrayOfValues = [];\n let isValueInArray = false;\n let index = -1;\n\n if (!Array.isArray(currentValue)) {\n // eslint-disable-next-line eqeqeq\n if (!valueProp || valueProp == 'true' || valueProp == 'false') {\n return Boolean(checked);\n }\n } else {\n // If the current value is already an array, use it\n currentArrayOfValues = currentValue;\n index = currentValue.indexOf(valueProp);\n isValueInArray = index >= 0;\n }\n\n // If the checkbox was checked and the value is not already present in the aray we want to add the new value to the array of values\n if (checked && valueProp && !isValueInArray) {\n return currentArrayOfValues.concat(valueProp);\n }\n\n // If the checkbox was unchecked and the value is not in the array, simply return the already existing array of values\n if (!isValueInArray) {\n return currentArrayOfValues;\n }\n\n // If the checkbox was unchecked and the value is in the array, remove the value and return the array\n return currentArrayOfValues\n .slice(0, index)\n .concat(currentArrayOfValues.slice(index + 1));\n}\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n// @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n ? React.useLayoutEffect\n : React.useEffect;\n\nfunction useEventCallback<T extends (...args: any[]) => any>(fn: T): T {\n const ref: any = React.useRef(fn);\n\n // we copy a ref to the callback scoped to the current state/props on each render\n useIsomorphicLayoutEffect(() => {\n ref.current = fn;\n });\n\n return React.useCallback(\n (...args: any[]) => ref.current.apply(void 0, args),\n []\n ) as T;\n}\n","import * as React from 'react';\nimport {\n FormikProps,\n GenericFieldHTMLAttributes,\n FieldMetaProps,\n FieldHelperProps,\n FieldInputProps,\n FieldValidator,\n} from './types';\nimport { useFormikContext } from './FormikContext';\nimport { isFunction, isEmptyChildren, isObject } from './utils';\nimport invariant from 'tiny-warning';\n\nexport interface FieldProps<V = any, FormValues = any> {\n field: FieldInputProps<V>;\n form: FormikProps<FormValues>; // if ppl want to restrict this for a given form, let them.\n meta: FieldMetaProps<V>;\n}\n\nexport interface FieldConfig<V = any> {\n /**\n * Field component to render. Can either be a string like 'select' or a component.\n */\n component?:\n | string\n | React.ComponentType<FieldProps<V>>\n | React.ComponentType\n | React.ForwardRefExoticComponent<any>;\n\n /**\n * Component to render. Can either be a string e.g. 'select', 'input', or 'textarea', or a component.\n */\n as?:\n | React.ComponentType<FieldProps<V>['field']>\n | string\n | React.ComponentType\n | React.ForwardRefExoticComponent<any>;\n\n /**\n * Render prop (works like React router's <Route render={props =>} />)\n * @deprecated\n */\n render?: (props: FieldProps<V>) => React.ReactNode;\n\n /**\n * Children render function <Field name>{props => ...}</Field>)\n */\n children?: ((props: FieldProps<V>) => React.ReactNode) | React.ReactNode;\n\n /**\n * Validate a single field value independently\n */\n validate?: FieldValidator;\n\n /**\n * Field name\n */\n name: string;\n\n /** HTML input type */\n type?: string;\n\n /** Field value */\n value?: any;\n\n /** Inner ref */\n innerRef?: (instance: any) => void;\n}\n\nexport type FieldAttributes<T> = GenericFieldHTMLAttributes &\n FieldConfig<T> &\n T & { name: string };\n\nexport type FieldHookConfig<T> = GenericFieldHTMLAttributes & FieldConfig<T>;\n\nexport function useField<Val = any>(\n propsOrFieldName: string | FieldHookConfig<Val>\n): [FieldInputProps<Val>, FieldMetaProps<Val>, FieldHelperProps<Val>] {\n const formik = useFormikContext();\n const {\n getFieldProps,\n getFieldMeta,\n getFieldHelpers,\n registerField,\n unregisterField,\n } = formik;\n\n const isAnObject = isObject(propsOrFieldName);\n\n // Normalize propsOrFieldName to FieldHookConfig<Val>\n const props: FieldHookConfig<Val> = isAnObject\n ? (propsOrFieldName as FieldHookConfig<Val>)\n : { name: propsOrFieldName as string };\n\n const { name: fieldName, validate: validateFn } = props;\n\n React.useEffect(() => {\n if (fieldName) {\n registerField(fieldName, {\n validate: validateFn,\n });\n }\n return () => {\n if (fieldName) {\n unregisterField(fieldName);\n }\n };\n }, [registerField, unregisterField, fieldName, validateFn]);\n\n if (__DEV__) {\n invariant(\n formik,\n 'useField() / <Field /> must be used underneath a <Formik> component or withFormik() higher order component'\n );\n }\n\n invariant(\n fieldName,\n 'Invalid field name. Either pass `useField` a string or an object containing a `name` key.'\n );\n\n return [\n getFieldProps(props),\n getFieldMeta(fieldName),\n getFieldHelpers(fieldName),\n ];\n}\n\nexport function Field({\n validate,\n name,\n render,\n children,\n as: is, // `as` is reserved in typescript lol\n component,\n ...props\n}: FieldAttributes<any>) {\n const {\n validate: _validate,\n validationSchema: _validationSchema,\n\n ...formik\n } = useFormikContext();\n\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n !render,\n `<Field render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Field name=\"${name}\" render={({field, form}) => ...} /> with <Field name=\"${name}\">{({field, form, meta}) => ...}</Field>`\n );\n\n invariant(\n !(is && children && isFunction(children)),\n 'You should not use <Field as> and <Field children> as a function in the same <Field> component; <Field as> will be ignored.'\n );\n\n invariant(\n !(component && children && isFunction(children)),\n 'You should not use <Field component> and <Field children> as a function in the same <Field> component; <Field component> will be ignored.'\n );\n\n invariant(\n !(render && children && !isEmptyChildren(children)),\n 'You should not use <Field render> and <Field children> in the same <Field> component; <Field children> will be ignored'\n );\n // eslint-disable-next-line\n }, []);\n }\n\n // Register field and field-level validation with parent <Formik>\n const { registerField, unregisterField } = formik;\n React.useEffect(() => {\n registerField(name, {\n validate: validate,\n });\n return () => {\n unregisterField(name);\n };\n }, [registerField, unregisterField, name, validate]);\n const field = formik.getFieldProps({ name, ...props });\n const meta = formik.getFieldMeta(name);\n const legacyBag = { field, form: formik };\n\n if (render) {\n return render({ ...legacyBag, meta });\n }\n\n if (isFunction(children)) {\n return children({ ...legacyBag, meta });\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n const { innerRef, ...rest } = props;\n return React.createElement(\n component,\n { ref: innerRef, ...field, ...rest },\n children\n );\n }\n // We don't pass `meta` for backwards compat\n return React.createElement(\n component,\n { field, form: formik, ...props },\n children\n );\n }\n\n // default to input here so we can check for both `as` and `children` above\n const asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n const { innerRef, ...rest } = props;\n return React.createElement(\n asElement,\n { ref: innerRef, ...field, ...rest },\n children\n );\n }\n\n return React.createElement(asElement, { ...field, ...props }, children);\n}\n","import * as React from 'react';\nimport { useFormikContext } from './FormikContext';\n\nexport type FormikFormProps = Pick<\n React.FormHTMLAttributes<HTMLFormElement>,\n Exclude<\n keyof React.FormHTMLAttributes<HTMLFormElement>,\n 'onReset' | 'onSubmit'\n >\n>;\n\ntype FormProps = React.ComponentPropsWithoutRef<'form'>;\n\n// @todo tests\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props: FormikFormProps, ref) => {\n // iOS needs an \"action\" attribute for nice input: https://stackoverflow.com/a/39485162/406725\n // We default the action to \"#\" in case the preventDefault fails (just updates the URL hash)\n const { action, ...rest } = props;\n const _action = action ?? '#';\n const { handleReset, handleSubmit } = useFormikContext();\n return (\n <form\n onSubmit={handleSubmit}\n ref={ref}\n onReset={handleReset}\n action={_action}\n {...rest}\n />\n );\n }\n);\n\nForm.displayName = 'Form';\n","import * as React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { connect } from './connect';\nimport {\n FormikContextType,\n FormikState,\n SharedRenderProps,\n FormikProps,\n} from './types';\nimport {\n getIn,\n isEmptyChildren,\n isFunction,\n setIn,\n isEmptyArray,\n} from './utils';\nimport isEqual from 'react-fast-compare';\n\nexport type FieldArrayRenderProps = ArrayHelpers & {\n form: FormikProps<any>;\n name: string;\n};\n\nexport type FieldArrayConfig = {\n /** Really the path to the array field to be updated */\n name: string;\n /** Should field array validate the form AFTER array updates/changes? */\n validateOnChange?: boolean;\n} & SharedRenderProps<FieldArrayRenderProps>;\nexport interface ArrayHelpers {\n /** Imperatively add a value to the end of an array */\n push: (obj: any) => void;\n /** Curried fn to add a value to the end of an array */\n handlePush: (obj: any) => () => void;\n /** Imperatively swap two values in an array */\n swap: (indexA: number, indexB: number) => void;\n /** Curried fn to swap two values in an array */\n handleSwap: (indexA: number, indexB: number) => () => void;\n /** Imperatively move an element in an array to another index */\n move: (from: number, to: number) => void;\n /** Imperatively move an element in an array to another index */\n handleMove: (from: number, to: number) => () => void;\n /** Imperatively insert an element at a given index into the array */\n insert: (index: number, value: any) => void;\n /** Curried fn to insert an element at a given index into the array */\n handleInsert: (index: number, value: any) => () => void;\n /** Imperatively replace a value at an index of an array */\n replace: (index: number, value: any) => void;\n /** Curried fn to replace an element at a given index into the array */\n handleReplace: (index: number, value: any) => () => void;\n /** Imperatively add an element to the beginning of an array and return its length */\n unshift: (value: any) => number;\n /** Curried fn to add an element to the beginning of an array */\n handleUnshift: (value: any) => () => void;\n /** Curried fn to remove an element at an index of an array */\n handleRemove: (index: number) => () => void;\n /** Curried fn to remove a value from the end of the array */\n handlePop: () => () => void;\n /** Imperatively remove and element at an index of an array */\n remove<T>(index: number): T | undefined;\n /** Imperatively remove and return value from the end of the array */\n pop<T>(): T | undefined;\n}\n\n/**\n * Some array helpers!\n */\nexport const move = (array: any[], from: number, to: number) => {\n const copy = copyArrayLike(array);\n const value = copy[from];\n copy.splice(from, 1);\n copy.splice(to, 0, value);\n return copy;\n};\n\nexport const swap = (\n arrayLike: ArrayLike<any>,\n indexA: number,\n indexB: number\n) => {\n const copy = copyArrayLike(arrayLike);\n const a = copy[indexA];\n copy[indexA] = copy[indexB];\n copy[indexB] = a;\n return copy;\n};\n\nexport const insert = (\n arrayLike: ArrayLike<any>,\n index: number,\n value: any\n) => {\n const copy = copyArrayLike(arrayLike);\n copy.splice(index, 0, value);\n return copy;\n};\n\nexport const replace = (\n arrayLike: ArrayLike<any>,\n index: number,\n value: any\n) => {\n const copy = copyArrayLike(arrayLike);\n copy[index] = value;\n return copy;\n};\n\nconst copyArrayLike = (arrayLike: ArrayLike<any>) => {\n if (!arrayLike) {\n return [];\n } else if (Array.isArray(arrayLike)) {\n return [...arrayLike];\n } else {\n const maxIndex = Object.keys(arrayLike)\n .map(key => parseInt(key))\n .reduce((max, el) => (el > max ? el : max), 0);\n return Array.from({ ...arrayLike, length: maxIndex + 1 });\n }\n};\n\nclass FieldArrayInner<Values = {}> extends React.Component<\n FieldArrayConfig & { formik: FormikContextType<Values> },\n {}\n> {\n static defaultProps = {\n validateOnChange: true,\n };\n\n constructor(props: FieldArrayConfig & { formik: FormikContextType<Values> }) {\n super(props);\n // We need TypeScript generics on these, so we'll bind them in the constructor\n // @todo Fix TS 3.2.1\n this.remove = this.remove.bind(this) as any;\n this.pop = this.pop.bind(this) as any;\n }\n\n componentDidUpdate(\n prevProps: FieldArrayConfig & { formik: FormikContextType<Values> }\n ) {\n if (\n this.props.validateOnChange &&\n this.props.formik.validateOnChange &&\n !isEqual(\n getIn(prevProps.formik.values, prevProps.name),\n getIn(this.props.formik.values, this.props.name)\n )\n ) {\n this.props.formik.validateForm(this.props.formik.values);\n }\n }\n\n updateArrayField = (\n fn: Function,\n alterTouched: boolean | Function,\n alterErrors: boolean | Function\n ) => {\n const {\n name,\n\n formik: { setFormikState },\n } = this.props;\n setFormikState((prevState: FormikState<any>) => {\n let updateErrors = typeof alterErrors === 'function' ? alterErrors : fn;\n let updateTouched =\n typeof alterTouched === 'function' ? alterTouched : fn;\n\n // values fn should be executed before updateErrors and updateTouched,\n // otherwise it causes an error with unshift.\n let values = setIn(\n prevState.values,\n name,\n fn(getIn(prevState.values, name))\n );\n\n let fieldError = alterErrors\n ? updateErrors(getIn(prevState.errors, name))\n : undefined;\n let fieldTouched = alterTouched\n ? updateTouched(getIn(prevState.touched, name))\n : undefined;\n\n if (isEmptyArray(fieldError)) {\n fieldError = undefined;\n }\n if (isEmptyArray(fieldTouched)) {\n fieldTouched = undefined;\n }\n\n return {\n ...prevState,\n values,\n errors: alterErrors\n ? setIn(prevState.errors, name, fieldError)\n : prevState.errors,\n touched: alterTouched\n ? setIn(prevState.touched, name, fieldTouched)\n : prevState.touched,\n };\n });\n };\n\n push = (value: any) =>\n this.updateArrayField(\n (arrayLike: ArrayLike<any>) => [\n ...copyArrayLike(arrayLike),\n cloneDeep(value),\n ],\n false,\n false\n );\n\n handlePush = (value: any) => () => this.push(value);\n\n swap = (indexA: number, indexB: number) =>\n this.updateArrayField(\n (array: any[]) => swap(array, indexA, indexB),\n true,\n true\n );\n\n handleSwap = (indexA: number, indexB: number) => () =>\n this.swap(indexA, indexB);\n\n move = (from: number, to: number) =>\n this.updateArrayField((array: any[]) => move(array, from, to), true, true);\n\n handleMove = (from: number, to: number) => () => this.move(from, to);\n\n insert = (index: number, value: any) =>\n this.updateArrayField(\n (array: any[]) => insert(array, index, value),\n (array: any[]) => insert(array, index, null),\n (array: any[]) => insert(array, index, null)\n );\n\n handleInsert = (index: number, value: any) => () => this.insert(index, value);\n\n replace = (index: number, value: any) =>\n this.updateArrayField(\n (array: any[]) => replace(array, index, value),\n false,\n false\n );\n\n handleReplace = (index: number, value: any) => () =>\n this.replace(index, value);\n\n unshift = (value: any) => {\n let length = -1;\n this.updateArrayField(\n (array: any[]) => {\n const arr = array ? [value, ...array] : [value];\n if (length < 0) {\n length = arr.length;\n }\n return arr;\n },\n (array: any[]) => {\n const arr = array ? [null, ...array] : [null];\n if (length < 0) {\n length = arr.length;\n }\n return arr;\n },\n (array: any[]) => {\n const arr = array ? [null, ...array] : [null];\n if (length < 0) {\n length = arr.length;\n }\n return arr;\n }\n );\n return length;\n };\n\n handleUnshift = (value: any) => () => this.unshift(value);\n\n remove<T>(index: number): T {\n // We need to make sure we also remove relevant pieces of `touched` and `errors`\n let result: any;\n this.updateArrayField(\n // so this gets call 3 times\n (array?: any[]) => {\n const copy = array ? copyArrayLike(array) : [];\n if (!result) {\n result = copy[index];\n }\n if (isFunction(copy.splice)) {\n copy.splice(index, 1);\n }\n return copy;\n },\n true,\n true\n );\n\n return result as T;\n }\n\n handleRemove = (index: number) => () => this.remove<any>(index);\n\n pop<T>(): T {\n // Remove relevant pieces of `touched` and `errors` too!\n let result: any;\n this.updateArrayField(\n // so this gets call 3 times\n (array: any[]) => {\n const tmp = array;\n if (!result) {\n result = tmp && tmp.pop && tmp.pop();\n }\n return tmp;\n },\n true,\n true\n );\n\n return result as T;\n }\n\n handlePop = () => () => this.pop<any>();\n\n render() {\n const arrayHelpers: ArrayHelpers = {\n push: this.push,\n pop: this.pop,\n swap: this.swap,\n move: this.move,\n insert: this.insert,\n replace: this.replace,\n unshift: this.unshift,\n remove: this.remove,\n handlePush: this.handlePush,\n handlePop: this.handlePop,\n handleSwap: this.handleSwap,\n handleMove: this.handleMove,\n handleInsert: this.handleInsert,\n handleReplace: this.handleReplace,\n handleUnshift: this.handleUnshift,\n handleRemove: this.handleRemove,\n };\n\n const {\n component,\n render,\n children,\n name,\n formik: {\n validate: _validate,\n validationSchema: _validationSchema,\n ...restOfFormik\n },\n } = this.props;\n\n const props: FieldArrayRenderProps = {\n ...arrayHelpers,\n form: restOfFormik,\n name,\n };\n\n return component\n ? React.createElement(component as any, props)\n : render\n ? (render as any)(props)\n : children // children come last, always called\n ? typeof children === 'function'\n ? (children as any)(props)\n : !isEmptyChildren(children)\n ? React.Children.only(children)\n : null\n : null;\n }\n}\n\nexport const FieldArray = connect<FieldArrayConfig, any>(FieldArrayInner);\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t/* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\nexpressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix, idPrefix:writable, _useWebWorker:writable */\r\n/* exported locationHref, subframeEnabled, expressionsPlugin, idPrefix, _useWebWorker */\r\n\r\n'use strict';\r\n\r\n/* exported svgNS, locationHref, initialDefaultFrame, _useWebWorker */\r\n\r\nvar svgNS = 'http://www.w3.org/2000/svg';\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\nvar _useWebWorker = false;\r\n\r\n/* global createSizedArray */\r\n/* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\ndefaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\nBMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\naddSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\r\n\r\nvar subframeEnabled = true;\r\nvar idPrefix = '';\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bmRnd;\r\nvar bmPow = Math.pow;\r\nvar bmSqrt = Math.sqrt;\r\nvar bmFloor = Math.floor;\r\nvar bmMax = Math.max;\r\nvar bmMin = Math.min;\r\n\r\nvar BMMath = {};\r\n(function () {\r\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\r\n var i;\r\n var len = propertyNames.length;\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n}());\r\n\r\nfunction ProjectInterface() { return {}; }\r\n\r\nBMMath.random = Math.random;\r\nBMMath.abs = function (val) {\r\n var tOfVal = typeof val;\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n return absArr;\r\n }\r\n return Math.abs(val);\r\n};\r\nvar defaultCurveSegments = 150;\r\nvar degToRads = Math.PI / 180;\r\nvar roundCorner = 0.5519;\r\n\r\nfunction roundValues(flag) {\r\n if (flag) {\r\n bmRnd = Math.round;\r\n } else {\r\n bmRnd = function (val) {\r\n return val;\r\n };\r\n }\r\n}\r\nroundValues(false);\r\n\r\nfunction styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n}\r\n\r\nfunction BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n}\r\n\r\nfunction BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n}\r\n\r\nfunction BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n}\r\n\r\nfunction BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n}\r\n\r\nfunction BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n}\r\n\r\nvar createElementID = (function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix + '__lottie_element_' + _count;\r\n };\r\n}());\r\n\r\nfunction HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0: r = v; g = t; b = p; break;\r\n case 1: r = q; g = v; b = p; break;\r\n case 2: r = p; g = v; b = t; break;\r\n case 3: r = p; g = q; b = v; break;\r\n case 4: r = t; g = p; b = v; break;\r\n case 5: r = v; g = p; b = q; break;\r\n default: break;\r\n }\r\n return [r,\r\n g,\r\n b];\r\n}\r\n\r\nfunction RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = (max === 0 ? 0 : d / max);\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6 : 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n default: break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v,\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\n\r\nfunction BaseEvent() {}\r\nBaseEvent.prototype = {\r\n triggerEvent: function (eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function (eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function (eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n }\r\n i += 1;\r\n }\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n },\r\n};\r\n\r\n/* exported createTypedArray, createSizedArray */\r\n\r\nvar createTypedArray = (function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n return arr;\r\n }\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n } if (type === 'int16') {\r\n return new Int16Array(len);\r\n } if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n return createRegularArray(type, len);\r\n }\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n return createRegularArray;\r\n}());\r\n\r\nfunction createSizedArray(len) {\r\n return Array.apply(null, { length: len });\r\n}\r\n\r\n/* global svgNS */\r\n/* exported createNS */\r\n\r\nfunction createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n}\r\n\r\n/* exported createTag */\r\n\r\nfunction createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n}\r\n\r\nfunction DynamicPropertyContainer() {}\r\nDynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function () {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function (container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n },\r\n};\r\n\r\n/* exported getBlendMode */\r\n\r\nvar getBlendMode = (function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity',\r\n };\r\n\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n}());\r\n\r\n/* exported lineCapEnum, lineJoinEnum */\r\n\r\nvar lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square',\r\n};\r\n\r\nvar lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel',\r\n};\r\n\r\n/* global createTypedArray */\r\n\r\n/*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\r\n\r\n/**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\r\n\r\nvar Matrix = (function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2;\r\n // }\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n };\r\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\r\n }\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [\r\n x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n ];\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n var _p = this.props;\r\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\r\n }\r\n\r\n function toCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n if ((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\r\n/* eslint-disable */\r\n/*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\r\n/* eslint-disable */\r\nvar BezierFactory = (function () {\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C(aA1) { return 3.0 * aA1; }\r\n\r\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n }\r\n\r\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2) { this._calcSampleValues(); }\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n },\r\n };\r\n\r\n return ob;\r\n}());\r\n\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { // eslint-disable-line no-plusplus\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if (!window.requestAnimationFrame) {\r\n window.requestAnimationFrame = function (callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n if (!window.cancelAnimationFrame) {\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}());\r\n\r\n/* exported extendPrototype, getDescriptor, createProxyFunction */\r\n\r\nfunction extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n}\r\n\r\n/* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\r\n/* exported bez */\r\n\r\nfunction bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = (x1 * y2) + (y1 * x3) + (x2 * y3) - (x3 * y2) - (y3 * x1) - (x2 * y1);\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n lastPoint[i] = point[i];\r\n }\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }());\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = (function () {\r\n var storedData = {};\r\n\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n if (!storedData[bezierName]) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\r\n curveSegments = 2;\r\n }\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n return storedData[bezierName];\r\n };\r\n }());\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\r\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0t0 = t0 * t0 * t0;\r\n //\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0t1 = t0 * t0 * t1;\r\n //\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1t1 = t0 * t1 * t1;\r\n //\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1t1 = t1 * t1 * t1;\r\n for (i = 0; i < len; i += 1) {\r\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D,\r\n };\r\n}\r\n\r\nvar bez = bezFunction();\r\n\r\n/* global _useWebWorker */\r\n\r\nvar dataManager = (function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function () {\r\n\r\n },\r\n postMessage: function (path) {\r\n workerFn({\r\n data: path,\r\n });\r\n },\r\n };\r\n var _workerSelf = {\r\n postMessage: function (data) {\r\n workerProxy.onmessage({\r\n data: data,\r\n });\r\n },\r\n };\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && _useWebWorker) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n /* exported dataManager */\r\n\r\n function dataFunctionManager() {\r\n // var tCanvasHelper = createTag('canvas').getContext('2d');\r\n\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (('ks' in layerData) && !layerData.completed) {\r\n layerData.completed = true;\r\n if (layerData.tt) {\r\n layers[i - 1].td = layerData.tt;\r\n }\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n if (!comps[i].layers.__used) {\r\n comps[i].layers.__used = true;\r\n return comps[i].layers;\r\n }\r\n return JSON.parse(JSON.stringify(comps[i].layers));\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n } if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n } if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n } if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n return null;\r\n }\r\n\r\n var checkText = (function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s: documentData,\r\n t: 0,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkChars = (function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n var j;\r\n var jLen;\r\n var pathData;\r\n var paths;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\r\n paths = animationData.chars[i].data.shapes[0].it;\r\n jLen = paths.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = paths[j].ks.k;\r\n if (!pathData.__converted) {\r\n convertPathsToAbsoluteValues(paths[j].ks.k);\r\n pathData.__converted = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkPathProperties = (function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a,\r\n };\r\n }\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p,\r\n };\r\n }\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r,\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkColors = (function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkShapes = (function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {\r\n data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n\r\n return moduleOb;\r\n }\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n /* exported assetLoader */\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = (function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n if (xhr.response && typeof xhr.response === 'object') {\r\n return xhr.response;\r\n } if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n } if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest();\r\n // set responseType after calling open or IE will break.\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n try {\r\n xhr.open('GET', path, true);\r\n } catch (error) {\r\n xhr.open('GET', fullPath + '/' + path, true);\r\n }\r\n xhr.send();\r\n }\r\n return {\r\n load: loadAsset,\r\n };\r\n }());\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n _workerSelf.dataManager.completeData(animation);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success',\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError,\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId,\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation,\r\n };\r\n}());\r\n\r\n/* exported getFontProperties */\r\n\r\nfunction getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal'; var\r\n fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight,\r\n };\r\n}\r\n\r\n/* global createNS, createTag, getFontProperties */\r\n/* exported FontManager */\r\n\r\nvar FontManager = (function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n };\r\n var combinedCharacters = [];\r\n // Hindi characters\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366,\r\n 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\r\n 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n\r\n var surrogateModifiers = [\r\n 'd83cdffb',\r\n 'd83cdffc',\r\n 'd83cdffd',\r\n 'd83cdffe',\r\n 'd83cdfff',\r\n ];\r\n\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span');\r\n // Node is invisible to screen readers.\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span');\r\n // Characters that vary significantly among different fonts\r\n node.innerText = 'giItT1WQy@!-/#';\r\n // Visible - so we can measure it - but not on the screen\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px';\r\n // Large font size makes even subtle changes obvious\r\n parentNode.style.fontSize = '300px';\r\n // Reset any font properties\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode);\r\n\r\n // Remember width with no applied web font\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return { node: node, w: width, parent: parentNode };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(def, fontData) {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px';\r\n // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n def.appendChild(tHelper);\r\n var tCanvasHelper = createTag('canvas').getContext('2d');\r\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily;\r\n // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\r\n return tHelper;\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n fontArr[i].helper = createHelper(defs, fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n j += 1;\r\n }\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n while (i < len) {\r\n if (this.chars[i].ch === char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n i += 1;\r\n }\r\n if (((typeof char === 'string' && char.charCodeAt(0) !== 13) || !char)\r\n && console\r\n && console.warn // eslint-disable-line no-console\r\n && !this._warned\r\n ) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', char, style, font); // eslint-disable-line no-console\r\n }\r\n return emptyChar;\r\n }\r\n\r\n function measureText(char, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n var index = char.charCodeAt(0);\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n // Canvas version\r\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\r\n // SVG version\r\n // console.log(tHelper.getBBox().width)\r\n if (char === ' ') {\r\n tHelper.textContent = '|' + char + '|';\r\n var doubleSize = tHelper.getComputedTextLength();\r\n tHelper.textContent = '||';\r\n var singleSize = tHelper.getComputedTextLength();\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n tHelper.textContent = char;\r\n fontData.cache[index + 1] = (tHelper.getComputedTextLength()) / 100;\r\n }\r\n }\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n i += 1;\r\n }\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(char) {\r\n return combinedCharacters.indexOf(char) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function () {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded,\r\n };\r\n\r\n Font.prototype = fontPrototype;\r\n\r\n return Font;\r\n}());\r\n\r\n/* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\r\n/* exported PropertyFactory */\r\n\r\nvar PropertyFactory = (function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyframeMetadata.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n // based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n if (!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1,\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n if ((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2]))) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', arrLen) };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof (data.k[0]) === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp,\r\n };\r\n return ob;\r\n}());\r\n\r\n/* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n/* exported TransformPropertyFactory */\r\n\r\nvar TransformPropertyFactory = (function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate), 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate), 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {\r\n //\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n // Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || { k: [0, 0, 0] }, 1, 0, this);\r\n }\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\r\n // sh Indicates it needs to be capped between -180 and 180\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || { k: 0 }, 0, degToRads, this);\r\n }\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: [0, 0, 0] }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: [100, 100, 100] }, 1, 0.01, this);\r\n // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = { _mdf: false, v: 1 };\r\n }\r\n this._isDirty = true;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient,\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, createSizedArray, pointPool */\r\n\r\nfunction ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n};\r\n\r\nShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n this._length = len;\r\n};\r\n\r\nShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n};\r\n\r\nShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n if (!arr[pos] || (arr[pos] && !replace)) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n return newPath;\r\n};\r\n\r\n/* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\r\n/* exported ShapePropertyFactory */\r\n\r\nvar ShapePropertyFactory = (function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n if ((nextKeyData.t - this.offsetTime) > frameNum) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / ((nextKeyData.t - this.offsetTime) - (keyData.t - this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n if (!(lastFrame !== initFrame && ((lastFrame < initTime && frameNum < initTime) || (lastFrame > endTime && frameNum > endTime)))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching);\r\n /// /\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n var i;\r\n var len = shape1._length;\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0]\r\n || shape1.v[i][1] !== shape2.v[i][1]\r\n || shape1.o[i][0] !== shape2.o[i][0]\r\n || shape1.o[i][1] !== shape2.o[i][1]\r\n || shape1.i[i][0] !== shape2.i[i][0]\r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n } if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n var i;\r\n var len = this.effectsSequence.length;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = { lastFrame: initFrame, lastIndex: 0 };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n /* this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n }; */\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n },\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n\r\n return EllShapePropertyFactory;\r\n }());\r\n\r\n var StarShapeProperty = (function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function () {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = (Math.PI * 2) / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = (2 * Math.PI * longRad) / (numPts * 2);\r\n var shortPerimSegment = (2 * Math.PI * shortRad) / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n\r\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function () {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = (Math.PI * 2) / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = (2 * Math.PI * rad) / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n currentAng += angle * dir;\r\n }\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n },\r\n\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n\r\n return StarShapePropertyFactory;\r\n }());\r\n\r\n var RectShapeProperty = (function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape,\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n\r\n return RectShapePropertyFactory;\r\n }());\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n}());\r\n\r\n/* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\r\n/* exported ShapeModifiers */\r\n\r\nvar ShapeModifiers = (function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\nfunction ShapeModifier() {}\r\nShapeModifier.prototype.initModifierProperties = function () {};\r\nShapeModifier.prototype.addShapeToModifier = function () {};\r\nShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = { shape: data.sh, data: data, localShapeCollection: shapeCollectionPool.newShapeCollection() };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n};\r\nShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\nShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\r\n\r\nfunction TrimModifier() {\r\n}\r\nextendPrototype([ShapeModifier], TrimModifier);\r\nTrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n};\r\n\r\nTrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n};\r\n\r\nTrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e,\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1,\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1,\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!((e === 1 && s === 0) || (e === 0 && s === 1))) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE,\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\r\n\r\nfunction RoundCornersModifier() {}\r\nextendPrototype([ShapeModifier], RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\r\n index += 1;\r\n }\r\n }\r\n return clonedPath;\r\n};\r\n\r\nRoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\n\r\nShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\r\n\r\nfunction PuckerAndBloatModifier() {}\r\nextendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\nPuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n return clonedPath;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\nShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\r\n\r\nfunction RepeaterModifier() {}\r\nextendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\nRepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n};\r\n\r\nRepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n};\r\n\r\nRepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n while (pos > 0) {\r\n pos -= 1;\r\n // this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n }\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr',\r\n };\r\n group.it.push({\r\n a: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr',\r\n });\r\n\r\n this.arr.splice(0, 0, group);\r\n this._groups.splice(0, 0, group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies;\r\n /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1\r\n ? this.so.v\r\n : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if ((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\r\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\r\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n return hasReloaded;\r\n};\r\n\r\nRepeaterModifier.prototype.addShape = function () {};\r\n\r\nShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n\r\n/* global createSizedArray, shapePool */\r\n\r\nfunction ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n};\r\n\r\nShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n this._length = 0;\r\n};\r\n\r\n/* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = { n: data[i].n, p: prop };\r\n }\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = this.k;\r\n}\r\n\r\nDashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n};\r\nextendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n/* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\nfunction GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? (data.k.k[0].s.length - data.p * 4) : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n}\r\n\r\nGradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n this._mdf = !forceRender;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n/* exported buildShapeString */\r\n\r\nvar buildShapeString = function (pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n for (i = 1; i < length; i += 1) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\r\n }\r\n if (closed && length) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n shapeString += 'z';\r\n }\r\n return shapeString;\r\n};\r\n\r\n/* global Howl */\r\n/* exported audioControllerFactory */\r\n\r\nvar audioControllerFactory = (function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function (audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function (rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function (assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n } if (Howl) {\r\n return new Howl({\r\n src: [assetPath],\r\n });\r\n }\r\n return {\r\n isPlaying: false,\r\n play: function () { this.isPlaying = true; },\r\n seek: function () { this.isPlaying = false; },\r\n playing: function () {},\r\n rate: function () {},\r\n setVolume: function () {},\r\n };\r\n },\r\n setAudioFactory: function (audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function (value) {\r\n this._volume = value;\r\n this._updateVolume();\r\n },\r\n mute: function () {\r\n this._isMuted = true;\r\n this._updateVolume();\r\n },\r\n unmute: function () {\r\n this._isMuted = false;\r\n this._updateVolume();\r\n },\r\n getVolume: function () {\r\n return this._volume;\r\n },\r\n _updateVolume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n },\r\n };\r\n\r\n return function () {\r\n return new AudioController();\r\n };\r\n}());\r\n\r\n/* global createTag, createNS, isSafari, dataManager */\r\n/* exported ImagePreloader */\r\n\r\nvar ImagePreloader = (function () {\r\n var proxyImage = (function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }());\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n clearInterval(intervalId);\r\n }\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data,\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType,\r\n };\r\n\r\n return ImagePreloaderFactory;\r\n}());\r\n\r\n/* exported featureSupport */\r\n\r\nvar featureSupport = (function () {\r\n var ob = {\r\n maskType: true,\r\n };\r\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\r\n ob.maskType = false;\r\n }\r\n return ob;\r\n}());\r\n\r\n/* global createNS */\r\n/* exported filtersFactory */\r\n\r\nvar filtersFactory = (function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {},\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n}\r\n\r\nTextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m),\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n};\r\n\r\nTextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n }\r\n // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n pathInfo = {\r\n tLength: 0,\r\n segments: [],\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[i + 1],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n i = len;\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[0],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n this._pathData.pi = pathInfo;\r\n }\r\n pathInfo = this._pathData.pi;\r\n\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n\r\n jLen = animators.length;\r\n\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO;\r\n\r\n //\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n isNewLine = false;\r\n }\r\n }\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n }\r\n //\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n default:\r\n break;\r\n }\r\n currentLine = letters[i].line;\r\n }\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n currentLength += (alignment[0] * letters[i].an) * 0.005;\r\n var animatorOffset = 0;\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n flag = true;\r\n // Force alignment only works with a single line for now\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + ((totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind) / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, (-alignment[1] * yOff) * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult[0]), 1 + ((animatorProps.s.v[1] - 1) * mult[1]), 1);\r\n } else {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult), 1 + ((animatorProps.s.v[1] - 1) * mult), 1);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += ((animatorProps.o.v) * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += ((animatorProps.o.v) * mult - elemOpacity) * mult;\r\n }\r\n }\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n\r\n matrixHelper.translate(0, (alignment[1] * yOff) * 0.01 + yPos, 0);\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = (Math.atan(tanAngle) * 180) / Math.PI;\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n matrixHelper.rotate((-rot * Math.PI) / 180);\r\n }\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= (alignment[0] * letters[i].an) * 0.005;\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate((alignment[0] * letters[i].an) * 0.005, (alignment[1] * yOff) * 0.01, 0);\r\n xPos += letters[i].l + (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\r\n }\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n};\r\n\r\nTextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nTextAnimatorProperty.prototype.mHelper = new Matrix();\r\nTextAnimatorProperty.prototype.defaultPropsArray = [];\r\nextendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n/* global PropertyFactory, degToRads, TextSelectorProp */\r\n/* exported TextAnimatorDataProperty */\r\n\r\nfunction TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = { propType: false };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData,\r\n };\r\n\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n}\r\n\r\nfunction LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true,\r\n };\r\n}\r\n\r\nLetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n return updated;\r\n};\r\n\r\n/* global FontManager, initialDefaultFrame, getFontProperties */\r\n/* exported TextProperty */\r\n\r\nfunction TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false,\r\n\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n}\r\n\r\nTextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\nTextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n return obj;\r\n};\r\n\r\nTextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n};\r\n\r\nTextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n};\r\n\r\nTextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n};\r\n\r\nTextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var i; var\r\n len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n};\r\n\r\nTextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0; var\r\n len = textKeys.length;\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n i += 1;\r\n }\r\n return charactersArray;\r\n};\r\n\r\nTextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i; var\r\n len;\r\n var newLineFlag; var index = 0; var\r\n val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0; var currentPos = 0; var currentLine = 0; var\r\n lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j; var\r\n jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData; var\r\n cLength = 0;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var charCode;\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight; var\r\n finalText;\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\r\n // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n currentHeight += (fontData.ascent * documentData.finalSize) / 100;\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = (documentData.finalSize * documentData.lh) / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({\r\n l: cLength, an: cLength, add: currentSize, n: newLineFlag, anIndexes: [], val: val, line: currentLine, animatorJustifyOffset: 0,\r\n });\r\n if (anchorGrouping == 2) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.a; var animatorData; var\r\n letterData;\r\n jLen = animators.length;\r\n var based; var ind; var\r\n indexes = [];\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n ind = 0;\r\n based = animatorData.s.b;\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n if ((based == 1 && letterData.val !== '') || (based == 2 && letterData.val !== '' && letterData.val !== ' ') || (based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1)) || (based == 4 && (letterData.n || i == len - 1))) { // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n ind += 1;\r\n }\r\n }\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1; var\r\n newInd;\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n if (currentInd != letterData.anIndexes[j]) { // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = (fontData.ascent * documentData.finalSize) / 100;\r\n};\r\n\r\nTextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n};\r\n\r\nTextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\n/* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\r\n/* exported TextSelectorProp */\r\n\r\nvar TextSelectorProp = (function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: 0 }, 0, 0, this);\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = { v: 100 };\r\n }\r\n this.o = PropertyFactory.getProp(elem, data.o || { k: 0 }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || { k: 0 }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || { k: 0 }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || { k: 100 }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function (ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - (x * x) / (a * a));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2; // eslint-disable-line\r\n }\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n var threshold = 0.5 - smoothness * 0.5;\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n return mult * this.a.v;\r\n },\r\n getValue: function (newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = (this.e.v / divisor) + o;\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n },\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, pooling */\r\n/* exported poolFactory */\r\n\r\nvar poolFactory = (function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n var ob = {\r\n newElement: newElement,\r\n release: release,\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n if (_release) {\r\n _release(element);\r\n }\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported pooling */\r\n\r\nvar pooling = (function () {\r\n function double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n double: double,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, poolFactory */\r\n/* exported pointPool */\r\n\r\nvar pointPool = (function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* global ShapePath, pointPool, poolFactory */\r\n/* exported shapePool */\r\n\r\nvar shapePool = (function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\r\n }\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n\r\n return factory;\r\n}());\r\n\r\n/* global createSizedArray, ShapeCollection, shapePool, pooling */\r\n/* exported shapeCollectionPool */\r\n\r\nvar shapeCollectionPool = (function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release,\r\n };\r\n\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global poolFactory, bezierLengthPool */\r\n/* exported segmentsLengthPool */\r\n\r\nvar segmentsLengthPool = (function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0,\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n}());\r\n\r\n/* global createTypedArray, defaultCurveSegments, poolFactory */\r\n/* exported bezierLengthPool */\r\n\r\nvar bezierLengthPool = (function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', defaultCurveSegments),\r\n lengths: createTypedArray('float32', defaultCurveSegments),\r\n };\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* exported markerParser */\r\n\r\nvar markerParser = (\r\n\r\n function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr,\r\n };\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i],\r\n };\r\n }\r\n }\r\n markers.push(markerData);\r\n }\r\n return markers;\r\n };\r\n }());\r\n\r\n/* global AudioElement, FootageElement, FontManager */\r\n\r\nfunction BaseRenderer() {}\r\nBaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 3:\r\n return this.createNull(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 6:\r\n return this.createAudio(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n case 15:\r\n return this.createFootage(layer);\r\n default:\r\n return this.createNull(layer);\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n j += 1;\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n};\r\n\r\nBaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n};\r\nBaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n while (i < len) {\r\n if (layers[i].ind == parentName) { // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n};\r\n\r\nBaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h,\r\n };\r\n};\r\n\r\n/* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\nIImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\r\n\r\nfunction SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n contentVisibility: (config && config.contentVisibility) || 'visible',\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n hideOnTransparent: !((config && config.hideOnTransparent === false)),\r\n viewBoxOnly: (config && config.viewBoxOnly) || false,\r\n viewBoxSize: (config && config.viewBoxSize) || false,\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '100%',\r\n height: (config && config.filterSize && config.filterSize.height) || '100%',\r\n x: (config && config.filterSize && config.filterSize.x) || '0%',\r\n y: (config && config.filterSize && config.filterSize.y) || '0%',\r\n },\r\n };\r\n\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n}\r\n\r\nextendPrototype([BaseRenderer], SVGRenderer);\r\n\r\nSVGRenderer.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\r\n // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n this.animationItem.wrapper.appendChild(this.svgElement);\r\n // Mask animation\r\n var defs = this.globalData.defs;\r\n\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + maskId + ')');\r\n\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n};\r\n\r\nSVGRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nSVGRenderer.prototype.updateContainerSize = function () {\r\n};\r\n\r\nSVGRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n\r\n elements[pos] = element;\r\n if (expressionsPlugin) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n element.initExpressions();\r\n }\r\n this.appendElementInPos(element, pos);\r\n if (this.layers[pos].tt) {\r\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\r\n this.buildItem(pos - 1);\r\n this.addPendingElement(element);\r\n } else {\r\n element.setMatte(elements[pos - 1].layerId);\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n element.setMatte(this.elements[i - 1].layerId);\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n }\r\n // console.log('-------');\r\n // console.log('FRAME ',num);\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n if (!newElement) {\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n i += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n};\r\n\r\nSVGRenderer.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n};\r\n\r\n/* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\nCVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\r\n\r\nfunction CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\r\n context: (config && config.context) || null,\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n contentVisibility: (config && config.contentVisibility) || 'visible',\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n };\r\n this.renderConfig.dpr = (config && config.dpr) || 1;\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\r\n }\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1,\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n}\r\nextendPrototype([BaseRenderer], CanvasRenderer);\r\n\r\nCanvasRenderer.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nCanvasRenderer.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n }\r\n this.transformMat.cloneFromProps(props);\r\n var cProps = this.contextData.cTr.props;\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]);\r\n // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\r\n var trProps = this.contextData.cTr.props;\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n};\r\n\r\nCanvasRenderer.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n return;\r\n }\r\n this.contextData.cO *= op < 0 ? 0 : op;\r\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\r\n this.canvasContext.globalAlpha = this.contextData.cO;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n this.contextData.reset();\r\n};\r\n\r\nCanvasRenderer.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n var props = this.contextData.cTr.props;\r\n if (this.contextData._length <= this.contextData.cArrPos) {\r\n this.contextData.duplicate();\r\n }\r\n var i;\r\n var arr = this.contextData.saved[this.contextData.cArrPos];\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\r\n this.contextData.cArrPos += 1;\r\n};\r\n\r\nCanvasRenderer.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n this.contextData.cArrPos -= 1;\r\n var popped = this.contextData.saved[this.contextData.cArrPos];\r\n var i;\r\n var arr = this.contextData.cTr.props;\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\r\n popped = this.contextData.savedOp[this.contextData.cArrPos];\r\n this.contextData.cO = popped;\r\n if (this.globalData.currentGlobalAlpha !== popped) {\r\n this.canvasContext.globalAlpha = popped;\r\n this.globalData.currentGlobalAlpha = popped;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0,\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n\r\n this.updateContainerSize();\r\n};\r\n\r\nCanvasRenderer.prototype.updateContainerSize = function () {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\r\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\r\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\r\n }\r\n var elementRel;\r\n var animationRel;\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n if ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = ((elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2) * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if (yPos === 'YMid' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2) * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w))) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i<len;i+=1){\r\n if(this.elements[i] && this.elements[i].data.ty === 0){\r\n this.elements[i].resize(this.globalData.transformCanvas);\r\n }\r\n } */\r\n this.ctxTransform(this.transformCanvas.props);\r\n this.canvasContext.beginPath();\r\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n this.canvasContext.closePath();\r\n this.canvasContext.clip();\r\n\r\n this.renderFrame(this.renderedFrame, true);\r\n};\r\n\r\nCanvasRenderer.prototype.destroy = function () {\r\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function (num, forceRender) {\r\n if ((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1) {\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num;\r\n\r\n // console.log('--------');\r\n // console.log('NEW: ',num);\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\n/* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\nHTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\nHSolidElement, styleDiv, createTag, createNS */\r\n\r\nfunction HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: (config && config.className) || '',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '400%',\r\n height: (config && config.filterSize && config.filterSize.height) || '400%',\r\n x: (config && config.filterSize && config.filterSize.x) || '-100%',\r\n y: (config && config.filterSize && config.filterSize.y) || '-100%',\r\n },\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n}\r\n\r\nextendPrototype([BaseRenderer], HybridRenderer);\r\n\r\nHybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\nHybridRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n var layer = this.layers[pos];\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n i += 1;\r\n }\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n return new HShapeElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n return new HTextElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n};\r\n\r\nHybridRenderer.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n return new HImageElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n return new HCompElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n return new HSolidElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nHybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container);\r\n // this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type,\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n len = this.threeDElements.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n break;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n wrapper.appendChild(resizerElem);\r\n\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData;\r\n // Mask animation\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n};\r\n\r\nHybridRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nHybridRenderer.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / (this.globalData.compSize.w);\r\n sy = elementWidth / (this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2);\r\n } else {\r\n sx = elementHeight / (this.globalData.compSize.h);\r\n sy = elementHeight / (this.globalData.compSize.h);\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function () {\r\n this.buildAllItems();\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\n/* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\r\n\r\nfunction MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n for (i = 0; i < len; i += 1) {\r\n if ((properties[i].mode !== 'a' && properties[i].mode !== 'n') || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: '',\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n }\r\n\r\n // TODO move this to a factory or to a constructor\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0,\r\n };\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + layerId + '_' + count + ')');\r\n\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n }\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect,\r\n };\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n\r\n len = currentMasks.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + locationHref + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + locationHref + '#' + this.storedData[i].filterId + ')');\r\n }\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\r\n }\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n if (pathNodes.c && len > 1) {\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n }\r\n // pathNodes.__renderedString = pathString;\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement() {}\r\n\r\nHierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function () {\r\n // element's parent list\r\n this.hierarchy = [];\r\n // if element is parent of another layer _isParent will be true\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\r\n setHierarchy: function (hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function () {\r\n this._isParent = true;\r\n },\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function () {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n },\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n\r\nfunction FrameElement() {}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function () {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n // list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\r\n prepareProperties: function (num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n },\r\n};\r\n\r\n/* global TransformPropertyFactory, Matrix */\r\n\r\nfunction TransformElement() {}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function () {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix(),\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n // TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n // this.createElements();\r\n }\r\n },\r\n renderTransform: function () {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length;\r\n // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function (pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix(),\r\n};\r\n\r\nfunction RenderableElement() {\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function () {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n // layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n // list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function (num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function () {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\r\n checkLayerLimits: function (num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function () {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n },\r\n sourceRectAtTime: function () {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100,\r\n };\r\n },\r\n getLayerSize: function () {\r\n if (this.data.ty === 5) {\r\n return { w: this.data.textData.width, h: this.data.textData.height };\r\n }\r\n return { w: this.data.width, h: this.data.height };\r\n },\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, createProxyFunction */\r\n\r\nfunction RenderableDOMElement() {}\r\n\r\n(function () {\r\n var _prototype = {\r\n initElement: function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function () {},\r\n prepareFrame: function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function () {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n },\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\r\n\r\n/* exported ProcessedElement */\r\n\r\nfunction ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n}\r\n\r\n/* global createNS */\r\n\r\nfunction SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n};\r\n\r\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0;\r\n var len = transformers.length;\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n};\r\n\r\n/* exported SVGTransformData */\r\n\r\nfunction SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container,\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\r\n\r\n/* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n/* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n/* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\nextendPrototype, DynamicPropertyContainer, lineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || { k: 0 }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: 0 }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + opacityId + ')');\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n/* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\r\n\r\nfunction SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n/* global createNS */\r\n/* exported ShapeGroupData */\r\n\r\nfunction ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n}\r\n\r\n/* global Matrix, buildShapeString, bmFloor */\r\n/* exported SVGElementsRenderer */\r\n\r\nvar SVGElementsRenderer = (function () {\r\n var _identityMatrix = new Matrix();\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction,\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n case 'gf':\r\n return renderGradient;\r\n case 'gs':\r\n return renderGradientStroke;\r\n case 'st':\r\n return renderStroke;\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n case 'tr':\r\n return renderContentTransform;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n }\r\n // gfill.setAttribute('fy','200');\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global Matrix */\r\n\r\nfunction ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n addTransformSequence: function (transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n var sequence = this.sequences[key];\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false,\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n return sequence;\r\n },\r\n processSequence: function (sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function (isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function () {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n },\r\n};\r\n\r\n/* global ShapePropertyFactory, SVGShapeData */\r\n\r\nfunction CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: [],\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n}\r\n\r\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n/* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\nTextExpressionInterface, getBlendMode,createElementID, EffectsManager */\r\n\r\nfunction BaseElement() {\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function () {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n while (i < len) {\r\n if ((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {\r\n return true;\r\n }\r\n i += 1;\r\n }\r\n return false;\r\n },\r\n initExpressions: function () {\r\n this.layerInterface = LayerExpressionInterface(this);\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function () {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function (data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID();\r\n\r\n // Stretch factor for old animations missing this property.\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n }\r\n // effects manager\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function () {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function () {},\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\r\n\r\nfunction NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n}\r\n\r\nNullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nNullElement.prototype.renderFrame = function () {\r\n};\r\n\r\nNullElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nNullElement.prototype.destroy = function () {\r\n};\r\n\r\nNullElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nNullElement.prototype.hide = function () {\r\n};\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n/* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\r\n\r\nfunction SVGBaseElement() {\r\n}\r\n\r\nSVGBaseElement.prototype = {\r\n initRendererElement: function () {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function () {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null;\r\n // If this layer acts as a mask for the following layer\r\n var filId;\r\n var fil;\r\n var gg;\r\n if (this.data.td) {\r\n if (this.data.td == 3 || this.data.td == 1) { // eslint-disable-line eqeqeq\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', this.layerId);\r\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\r\n masker.appendChild(this.layerElement);\r\n layerElementParent = masker;\r\n this.globalData.defs.appendChild(masker);\r\n // This is only for IE and Edge when mask if of type alpha\r\n if (!featureSupport.maskType && this.data.td == 1) { // eslint-disable-line eqeqeq\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n } else if (this.data.td == 2) { // eslint-disable-line eqeqeq\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', this.layerId);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n /// /\r\n\r\n // This solution doesn't work on Android when meta tag with viewport attribute is set\r\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\r\n /// /\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc);\r\n /// /\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n maskGrouper.appendChild(this.layerElement);\r\n layerElementParent = maskGrouper;\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n maskGrouper.appendChild(gg);\r\n }\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n }\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function () {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function () {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n setMatte: function (id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n this.matteElement.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n },\r\n};\r\n\r\n/* global ProcessedElement */\r\n\r\nfunction IShapeElement() {\r\n}\r\n\r\nIShapeElement.prototype = {\r\n addShapeToModifiers: function (data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function (data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n renderModifiers: function () {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n var i;\r\n var len = this.shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n searchProcessedElement: function (elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function (elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while (i) {\r\n i -= 1;\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function (num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n },\r\n};\r\n\r\n/* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\r\n\r\nfunction ITextElement() {\r\n}\r\n\r\nITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n return shapeStr;\r\n};\r\n\r\nITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n};\r\n\r\nITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n};\r\n\r\nITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n};\r\n\r\nITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(xPos, yPos, 0);\r\n};\r\n\r\nITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n};\r\n\r\nITextElement.prototype.emptyProp = new LetterProps();\r\n\r\nITextElement.prototype.destroy = function () {\r\n\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\r\n\r\nfunction ICompElement() {}\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\nICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n this.hide();\r\n};\r\n\r\n/* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n}; */\r\n\r\nICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n var i;\r\n var len = this.elements.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n }\r\n // This iteration needs to be backwards because of how expressions connect between each other\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\r\n\r\nfunction IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0, left: 0, width: this.assetData.w, height: this.assetData.h,\r\n };\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n\r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\r\nIImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n};\r\n\r\n/* global extendPrototype, IImageElement, createNS */\r\n\r\nfunction ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect');\r\n /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\r\n\r\nfunction AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nAudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\nAudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing()\r\n || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\r\n ) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n};\r\n\r\nAudioElement.prototype.show = function () {\r\n // this.audio.play()\r\n};\r\n\r\nAudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n};\r\n\r\nAudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n};\r\n\r\nAudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n};\r\n\r\nAudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n};\r\n\r\nAudioElement.prototype.volume = function (volumeValue) {\r\n this.audio.volume(volumeValue);\r\n};\r\n\r\nAudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nAudioElement.prototype.destroy = function () {\r\n};\r\n\r\nAudioElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nAudioElement.prototype.initExpressions = function () {\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\r\n\r\nfunction FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n}\r\n\r\nFootageElement.prototype.prepareFrame = function () {\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\nFootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nFootageElement.prototype.renderFrame = function () {\r\n};\r\n\r\nFootageElement.prototype.destroy = function () {\r\n};\r\n\r\nFootageElement.prototype.initExpressions = function () {\r\n this.layerInterface = FootageInterface(this);\r\n};\r\n\r\nFootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\r\n\r\nfunction SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n // this.layerElement = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createNS */\r\n\r\nfunction SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\nSVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildNewText = function () {\r\n var i;\r\n var len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData;\r\n var charData;\r\n for (i = 0; i < len; i += 1) {\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs ? 'path' : 'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if (!singleShape) {\r\n tSpan.setAttribute('d', this.createPathShape(matrixHelper, shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper, shapes);\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height,\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i];\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\nFrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\nSVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\nTransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers,\r\nlineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\nSVGShapeElement.prototype.initSecondaryElement = function () {\r\n};\r\n\r\nSVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\nSVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\nSVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n};\r\n\r\n/*\r\nThis method searches for multiple shapes that affect a single element and one of them is animated\r\n*/\r\nSVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data,\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n len = ownStyles.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);\r\n // Adding M0 0 fixes same mask bug on all browsers\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTintFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'f2');\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n}\r\n\r\nSVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.matrixFilter.setAttribute('values', (colorWhite[0] - colorBlack[0]) + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGFillFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n}\r\nSVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGGaussianBlurEffect(filter, filterManager) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n}\r\n\r\nSVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;\r\n\r\n // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = (dimensions == 3) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n var sigmaY = (dimensions == 2) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\r\n\r\n // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n};\r\n\r\n/* global createNS, createElementID, locationHref, bmFloor */\r\n\r\nfunction SVGStrokeEffect(elem, filterManager) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n}\r\n\r\nSVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({ p: path, m: i });\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n};\r\n\r\nSVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTritoneFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n}\r\n\r\nSVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n // var opacity = this.filterManager.effectElements[2].p.v/100;\r\n // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGProLevelsFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n\r\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n }\r\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n }\r\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n }\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n }\r\n\r\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n}\r\n\r\nSVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n};\r\n\r\nSVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, { length: segments });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n};\r\n\r\n/* global createNS, rgbToHex, degToRads */\r\n\r\nfunction SVGDropShadowEffect(filter, filterManager) {\r\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', 'drop_shadow_1');\r\n feOffset.setAttribute('result', 'drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', 'drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', 'drop_shadow_3');\r\n feComposite.setAttribute('in2', 'drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', 'drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\r\n }\r\n};\r\n\r\n/* global createElementID, createNS */\r\n\r\nvar _svgMatteSymbols = [];\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if (!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n i += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n};\r\n\r\n/* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\nSVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\r\n\r\nfunction SVGEffects(elem) {\r\n var i;\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n if (elem.data.ef[i].ty === 20) {\r\n count += 1;\r\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 21) {\r\n count += 1;\r\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 22) {\r\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 23) {\r\n count += 1;\r\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 24) {\r\n count += 1;\r\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 25) {\r\n count += 1;\r\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 28) {\r\n // count += 1;\r\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\r\n } else if (elem.data.ef[i].ty === 29) {\r\n count += 1;\r\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\r\n }\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nSVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n};\r\n\r\n/* global Matrix, createTypedArray */\r\n\r\nfunction CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = len;\r\n}\r\n\r\nCVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = newLength;\r\n};\r\n\r\nCVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n};\r\n\r\n/* global CVEffects, getBlendMode, CVMaskElement, Matrix */\r\n\r\nfunction CVBaseElement() {\r\n}\r\n\r\nCVBaseElement.prototype = {\r\n createElements: function () {},\r\n initRendererElement: function () {},\r\n createContainerElements: function () {\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function () {},\r\n setBlendMode: function () {\r\n var globalData = this.globalData;\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix(),\r\n};\r\nCVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\nCVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\nRenderableElement, SVGShapeElement, IImageElement, createTag */\r\n\r\nfunction CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n\r\nCVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n if ((imgRel > canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n};\r\n\r\nCVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n};\r\n\r\nCVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\r\n\r\nfunction CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\r\n\r\nCVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nCVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n};\r\n\r\n/* global createSizedArray, ShapePropertyFactory, MaskElement */\r\n\r\nfunction CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n this.hasMasks = hasMasks;\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n};\r\n\r\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\nCVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n};\r\n\r\n/* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\nHierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\nDashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor, lineCapEnum, lineJoinEnum */\r\n\r\nfunction CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n\r\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n\r\nCVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false };\r\n\r\nCVShapeElement.prototype.dashResetter = [];\r\n\r\nCVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n};\r\n\r\nCVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true,\r\n };\r\n var elementData = {};\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || { k: 0 }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || { k: 0 }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n if (data.lj == 1) { // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem.do = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: [],\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this),\r\n },\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n};\r\n\r\nCVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n};\r\n\r\nCVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type;\r\n\r\n // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n if (!(((type === 'st' || type === 'gs') && currentStyle.wi === 0) || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle.do;\r\n }\r\n }\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n renderer.restore();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {\r\n //\r\n }\r\n }\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i]),\r\n });\r\n }\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0]),\r\n });\r\n shapeNodes.push({\r\n t: 'z',\r\n });\r\n }\r\n }\r\n }\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb('\r\n + bmFloor(itemData.c.v[0]) + ','\r\n + bmFloor(itemData.c.v[1]) + ','\r\n + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n styleElem.grd = grd;\r\n }\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n};\r\n\r\nCVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem.do = d.dashoffset[0];\r\n }\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\nSVGShapeElement, IImageElement */\r\n\r\nfunction CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n\r\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh);\r\n //\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\nRenderableElement, ITextElement, createTag, createSizedArray */\r\n\r\nfunction CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: '',\r\n };\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n\r\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\nCVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n\r\n var hasFill = false;\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length;\r\n // this.tHelper.font = this.values.fValue;\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n matrixHelper.reset();\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n commands = createSizedArray(jLen);\r\n for (j = 0; j < jLen; j += 1) {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n }\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\r\n }\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n commands[j] = pathArr;\r\n }\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = { elem: commands };\r\n }\r\n cnt += 1;\r\n }\r\n};\r\n\r\nCVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill();\r\n /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke();\r\n /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction CVEffects() {\r\n\r\n}\r\nCVEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\r\n\r\nfunction HBaseElement() {}\r\nHBaseElement.prototype = {\r\n checkBlendMode: function () {},\r\n initRendererElement: function () {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function () {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function () {\r\n },\r\n setMatte: function () {},\r\n};\r\nHBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\nHBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\nHBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, createNS, createTag */\r\n\r\nfunction HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\nHSolidElement.prototype.createContent = function () {\r\n var rect;\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\r\n\r\nfunction HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\r\nHCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\nHCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements();\r\n // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n};\r\n\r\nHCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n};\r\n\r\n/* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\nHierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\r\n\r\nfunction HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n}\r\nextendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\nHShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\nHShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n};\r\n\r\nHShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n return point;\r\n};\r\n\r\nHShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n if (len <= 1) {\r\n return;\r\n }\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n};\r\n\r\nHShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n};\r\n\r\nHShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n};\r\n\r\nHShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0,\r\n};\r\n\r\nHShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) { // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n\r\n b |= 0; // eslint-disable-line no-bitwise\r\n a |= 0; // eslint-disable-line no-bitwise\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {\r\n //\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n};\r\n\r\nHShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i]\r\n + 3 * bmPow(1 - t, 2) * t * p1[i]\r\n + 3 * (1 - t) * bmPow(t, 2) * p2[i]\r\n + bmPow(t, 3) * p3[i];\r\n};\r\n\r\nHShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n }\r\n }\r\n};\r\n\r\nHShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x\r\n && this.currentBBox.y <= box.y\r\n && this.currentBBox.width + this.currentBBox.x >= box.x + box.width\r\n && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n};\r\n\r\nHShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;\r\n // var tempBoundingBox = this.shapeCont.getBBox();\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n var changed = false;\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS, lineJoinEnum, lineCapEnum */\r\n\r\nfunction HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\nHTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n};\r\n\r\nHTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n var i;\r\n var len;\r\n\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n }\r\n // tSpan.setAttribute('visibility', 'hidden');\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n matrixHelper.reset();\r\n if (shapeData && shapeData.shapes) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', (boundingBox.x - 1) + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n //\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n }\r\n //\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n};\r\n\r\nHTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n } if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n }\r\n /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n textSpan.style.opacity = renderedLetter.o;\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n if (this.currentBBox.w !== (boundingBox.width + margin * 2) || this.currentBBox.h !== (boundingBox.height + margin * 2) || this.currentBBox.x !== (boundingBox.x - margin) || this.currentBBox.y !== (boundingBox.y - margin)) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\nFrameElement, RenderableElement, createNS */\r\n\r\nfunction HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\nHImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n};\r\n\r\n/* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\r\n\r\nfunction HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true;\r\n\r\n // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n this.finalTransform = {\r\n mProp: this,\r\n };\r\n}\r\nextendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\nHCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n};\r\n\r\nHCameraElement.prototype.createElements = function () {\r\n};\r\n\r\nHCameraElement.prototype.hide = function () {\r\n};\r\n\r\nHCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n if (_mdf || this.pe._mdf || (this.p && this.p._mdf) || (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || (this.a && this.a._mdf)) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n if (this.a) {\r\n var diffVector;\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\r\n // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = (Math.atan2(lookDir[1], lookLengthOnXZ));\r\n var mRotationY = (Math.atan2(lookDir[0], -lookDir[2]));\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n this._isFirstFrame = false;\r\n};\r\n\r\nHCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nHCameraElement.prototype.destroy = function () {\r\n};\r\nHCameraElement.prototype.getBaseElement = function () { return null; };\r\n\r\nfunction HEffects() {\r\n}\r\nHEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, AnimationItem */\r\n/* exported animationManager */\r\n\r\nvar animationManager = (function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n var i = 0;\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n i += 1;\r\n }\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({ elem: element, animation: animItem });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n initTime = nowTime;\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n for (i = (len - 1); i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),\r\n [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize;\r\n // moduleOb.start = start;\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n}());\r\n\r\n/* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\nCanvasRenderer, SVGRenderer, HybridRenderer, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\nBMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\nBMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\r\n\r\nvar AnimationItem = function () {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = subframeEnabled;\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n};\r\n\r\nextendPrototype([BaseEvent], AnimationItem);\r\n\r\nAnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n var animType = 'svg';\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n switch (animType) {\r\n case 'canvas':\r\n this.renderer = new CanvasRenderer(this, params.rendererSettings);\r\n break;\r\n case 'svg':\r\n this.renderer = new SVGRenderer(this, params.rendererSettings);\r\n break;\r\n default:\r\n this.renderer = new HybridRenderer(this, params.rendererSettings);\r\n break;\r\n }\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n if (params.loop === ''\r\n || params.loop === null\r\n || params.loop === undefined\r\n || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(\r\n params.path,\r\n this.configAnimation,\r\n this.onSetupError\r\n );\r\n }\r\n};\r\n\r\nAnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n};\r\n\r\nAnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(\r\n data,\r\n this.configAnimation\r\n );\r\n};\r\n\r\nAnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (typeof animationData !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData,\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value\r\n : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value\r\n : wrapperAttributes.getNamedItem('bm-path')\r\n ? wrapperAttributes.getNamedItem('bm-path').value\r\n : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value\r\n : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value\r\n : wrapperAttributes.getNamedItem('bm-renderer')\r\n ? wrapperAttributes.getNamedItem('bm-renderer').value\r\n : 'canvas';\r\n\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value\r\n : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value\r\n : wrapperAttributes.getNamedItem('bm-loop')\r\n ? wrapperAttributes.getNamedItem('bm-loop').value\r\n : '';\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value\r\n : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value\r\n : wrapperAttributes.getNamedItem('bm-autoplay')\r\n ? wrapperAttributes.getNamedItem('bm-autoplay').value\r\n : true;\r\n params.autoplay = autoplay !== 'false';\r\n\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value\r\n : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value\r\n : wrapperAttributes.getNamedItem('bm-name')\r\n ? wrapperAttributes.getNamedItem('bm-name').value\r\n : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value\r\n : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value\r\n : wrapperAttributes.getNamedItem('bm-prerender')\r\n ? wrapperAttributes.getNamedItem('bm-prerender').value\r\n : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n this.setParams(params);\r\n};\r\n\r\nAnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n if (data.assets) {\r\n len = data.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(\r\n this.animationData,\r\n this.onSegmentComplete\r\n );\r\n};\r\n\r\nAnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n};\r\n\r\nAnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.animationData = animData;\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n this.renderer.configAnimation(animData);\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded\r\n && this.renderer.globalData.fontManager.isLoaded\r\n && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas')\r\n && (this.imagePreloader.loadedFootages())\r\n ) {\r\n this.isLoaded = true;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resize = function () {\r\n this.renderer.updateContainerSize();\r\n};\r\n\r\nAnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n};\r\n\r\nAnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.audioController.resume();\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n};\r\n\r\nAnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false;\r\n // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) { // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n if (typeof arr[0] === 'object') {\r\n var i;\r\n var len = arr.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n};\r\nAnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nAnimationItem.prototype.destroy = function (name) {\r\n if ((name && this.name !== name) || !this.renderer) {\r\n return;\r\n }\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n};\r\n\r\nAnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.setVolume(val);\r\n};\r\n\r\nAnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n};\r\n\r\nAnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.mute();\r\n};\r\n\r\nAnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.unmute();\r\n};\r\n\r\nAnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n};\r\n\r\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n case 'drawnFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\n/* global CompExpressionInterface, expressionsPlugin: writable */\r\n/* exported expressionsPlugin */\r\n\r\nvar Expressions = (function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n return ob;\r\n}());\r\n\r\nexpressionsPlugin = Expressions;\r\n\r\n/* eslint-disable camelcase, no-unused-vars */\r\n/* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\r\n\r\nvar ExpressionManager = (function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = typeof a;\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n return retArr;\r\n }\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a - b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a % b;\r\n }\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n var degrees_to_radians = radiansToDegrees;\r\n\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0]; var g = val[1]; var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n default: break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n b = l; // achromatic\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n if (t <= tMin) {\r\n return value1;\r\n } if (t >= tMax) {\r\n return value2;\r\n }\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n return arr;\r\n }\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n return arr;\r\n }\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = (inTangents && inTangents[i]) ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = (outTangents && outTangents[i]) ? outTangents[i] : arrPlaceholder;\r\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\r\n }\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function () {\r\n return thisProperty.v;\r\n },\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n\r\n var scoped_bm_rt;\r\n // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n var numKeys = property.kf ? data.k.length : 0;\r\n\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random();\r\n // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n iWiggle += 1;\r\n }\r\n // var rnd2 = BMMath.random();\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n return arr;\r\n }\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n var mult = fn(t);\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n return arr;\r\n }\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n break;\r\n }\r\n }\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: [],\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n\r\n lenKey = arr.length;\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n return value.substring(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n return value.substr(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId;\r\n\r\n // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n if (scoped_bm_rt.propType === 'shape') {\r\n scoped_bm_rt = scoped_bm_rt.v;\r\n }\r\n // globalData.popExpression();\r\n return scoped_bm_rt;\r\n }\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n return ob;\r\n}());\r\n\r\n/* global ExpressionManager, createTypedArray */\r\n/* exported expressionHelpers */\r\n\r\nvar expressionHelpers = (function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n if (v1.length) {\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n var delta = -0.001;\r\n // frameNum += this.elem.data.st;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\ninitialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\r\n\r\n(function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n return ret;\r\n }\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n return ret;\r\n }\r\n return lastValue + (lastValue - nextLastValue) * (((currentFrame - lastKeyFrame)) / 0.001);\r\n }\r\n return this.getValueAtTime((((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime((((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration) + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n return ret;\r\n }\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + ((firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return ret;\r\n }\r\n return firstValue + ((firstValue - nextFirstValue) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return this.getValueAtTime(((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame))) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n var sampleValue;\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n i += 1;\r\n }\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix(),\r\n };\r\n }\r\n /// /\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(\r\n -anchor[0] * this.a.mult,\r\n -anchor[1] * this.a.mult,\r\n anchor[2] * this.a.mult\r\n );\r\n }\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(\r\n scale[0] * this.s.mult,\r\n scale[1] * this.s.mult,\r\n scale[2] * this.s.mult\r\n );\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult)\r\n .rotateY(rotationY * this.ry.mult)\r\n .rotateX(rotationX * this.rx.mult)\r\n .rotateZ(-orientation[2] * this.or.mult)\r\n .rotateY(orientation[1] * this.or.mult)\r\n .rotateX(orientation[0] * this.or.mult);\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(\r\n positionX * this.px.mult,\r\n positionY * this.py.mult,\r\n -positionZ * this.pz.mult\r\n );\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(\r\n position[0] * this.p.mult,\r\n position[1] * this.p.mult,\r\n -position[2] * this.p.mult\r\n );\r\n }\r\n return matrix;\r\n /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container);\r\n // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value,\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame,\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n ShapeExpressions.prototype = {\r\n vertices: function (prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n return arr;\r\n },\r\n points: function (time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function (time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function (time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function () {\r\n return this.v.c;\r\n },\r\n pointOnPath: function (perc, time) {\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n i += 1;\r\n }\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n return pt;\r\n },\r\n vectorOnPath: function (perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) { // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) { // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime,\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n };\r\n}());\r\n\r\n/* global ExpressionManager, TextProperty */\r\n\r\n(function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n}());\r\n\r\n/* global propertyGroupFactory, PropertyInterface */\r\n/* exported ShapePathInterface */\r\n\r\nvar ShapePathInterface = (\r\n\r\n function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n shape: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n ix: { value: shape.ix },\r\n propertyIndex: { value: shape.ix },\r\n mn: { value: shape.mn },\r\n propertyGroup: { value: propertyGroup },\r\n });\r\n return interfaceFunction;\r\n };\r\n }()\r\n);\r\n\r\n/* exported propertyGroupFactory */\r\n\r\nvar propertyGroupFactory = (function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n}());\r\n\r\n/* exported PropertyInterface */\r\n\r\nvar PropertyInterface = (function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName,\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\r\n/* exported ShapeExpressionInterface */\r\n\r\nvar ShapeExpressionInterface = (function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {\r\n // arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function () {\r\n return shape.nm;\r\n },\r\n });\r\n // interfaceFunction.content = interfaceFunction;\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n type: {\r\n get: function () {\r\n return 'a';\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p),\r\n });\r\n }\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n } if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w),\r\n },\r\n dash: {\r\n get: function () {\r\n return dashOb;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n if ((shape.sk && shape.sk.ix === value) || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n if ((shape.sa && shape.sa.ix === value) || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p),\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a),\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r),\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk),\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt),\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or),\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os),\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir),\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n } if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n return interfaces[value - 1];\r\n }\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported TextExpressionInterface */\r\n\r\nvar TextExpressionInterface = (function () {\r\n return function (elem) {\r\n var _prevValue;\r\n var _sourceText;\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function () {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n if (stringValue !== _prevValue) {\r\n elem.textProperty.currentData.t = _prevValue;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n }\r\n return _sourceText;\r\n },\r\n });\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\r\n/* exported LayerExpressionInterface */\r\n\r\nvar LayerExpressionInterface = (function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n default:\r\n return null;\r\n }\r\n }\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function () {\r\n return elem.hierarchy.length;\r\n },\r\n },\r\n parent: {\r\n get: function () {\r\n return elem.hierarchy[0].layerInterface;\r\n },\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function () {\r\n return transformInterface;\r\n },\r\n },\r\n active: {\r\n get: function () {\r\n return elem.isInRange;\r\n },\r\n },\r\n });\r\n\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global */\r\n/* exported FootageInterface */\r\n\r\nvar FootageInterface = (function () {\r\n var outlineInterfaceFactory = (function (elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n return '';\r\n }\r\n return init;\r\n });\r\n\r\n var dataInterfaceFactory = function (elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported CompExpressionInterface */\r\n\r\nvar CompExpressionInterface = (function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n // return {active:false};\r\n }\r\n Object.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface */\r\n/* exported TransformExpressionInterface */\r\n\r\nvar TransformExpressionInterface = (function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry),\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s),\r\n });\r\n var _px;\r\n var _py;\r\n var _pz;\r\n var _transformFactory;\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function () {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n return [\r\n _px(),\r\n _py(),\r\n _pz ? _pz() : 0];\r\n },\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or),\r\n });\r\n\r\n return _thisFunction;\r\n };\r\n}());\r\n\r\n/* exported ProjectInterface */\r\n\r\nvar ProjectInterface = (function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n return this.compositions[i].compInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n\r\n return _thisProjectFunction;\r\n };\r\n}());\r\n\r\n/* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\r\n/* exported EffectsExpressionInterface */\r\n\r\nvar EffectsExpressionInterface = (function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface,\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n var groupInterface = function (name) {\r\n i = 0;\r\n len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function () {\r\n return effects.length;\r\n },\r\n });\r\n return groupInterface;\r\n }\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n return effectElements[i]();\r\n }\r\n i += 1;\r\n }\r\n throw new Error();\r\n }\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function () {\r\n return effectElements[0]();\r\n },\r\n });\r\n }\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function () {\r\n return data.np;\r\n },\r\n },\r\n _name: { value: data.nm },\r\n propertyGroup: { value: _propertyGroup },\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported MaskManagerInterface */\r\n\r\nvar MaskManagerInterface = (function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function () {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n return this._mask.prop;\r\n },\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function () {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n return this._mask.op.v * 100;\r\n },\r\n });\r\n\r\n var MaskManager = function (maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n var i;\r\n var len = maskManager.viewData.length;\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function (name) {\r\n i = 0;\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n return maskFunction;\r\n };\r\n return MaskManager;\r\n}());\r\n\r\n/* global createTypedArray */\r\n/* exported ExpressionPropertyInterface */\r\n\r\nvar ExpressionPropertyInterface = (function () {\r\n var defaultUnidimensionalValue = { pv: 0, v: 0, mult: 1 };\r\n var defaultMultidimensionalValue = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function () {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n },\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n var value = '';\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n val = property.v * mult;\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var len = (property.data && property.data.l) || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n // TODO: try to avoid using this getter\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n } if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n}());\r\n\r\n/* global expressionHelpers, TextSelectorProp, ExpressionManager */\r\n/* exported TextExpressionSelectorPropFactory */\r\n\r\nvar TextExpressionSelectorPropFactory = (function () { // eslint-disable-line no-unused-vars\r\n function getValueProxy(index, total) {\r\n this.textIndex = index + 1;\r\n this.textTotal = total;\r\n this.v = this.getValue() * this.mult;\r\n return this.v;\r\n }\r\n\r\n return function (elem, data) {\r\n this.pv = 1;\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.mult = 0.01;\r\n this.propType = 'textSelector';\r\n this.textTotal = data.totalChars;\r\n this.selectorValue = 100;\r\n this.lastValue = [1, 1, 1];\r\n this.k = true;\r\n this.x = true;\r\n this.getValue = ExpressionManager.initiateExpression.bind(this)(elem, data, this);\r\n this.getMult = getValueProxy;\r\n this.getVelocityAtTime = expressionHelpers.getVelocityAtTime;\r\n if (this.kf) {\r\n this.getValueAtTime = expressionHelpers.getValueAtTime.bind(this);\r\n } else {\r\n this.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this);\r\n }\r\n this.setGroupProperty = expressionHelpers.setGroupProperty;\r\n };\r\n}());\r\n\r\nvar propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\r\nTextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\r\n if (data.t === 1) {\r\n return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\r\n }\r\n return propertyGetTextProp(elem, data, arr);\r\n};\r\n\r\n/* global PropertyFactory */\r\n/* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\r\n\r\nfunction SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction NoValueEffect() {\r\n this.p = {};\r\n}\r\n\r\n/* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\nMaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\r\n\r\nfunction EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n}\r\n\r\nfunction GroupEffect(data, element) {\r\n this.init(data, element);\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], GroupEffect);\r\n\r\nGroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\nGroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n};\r\n\r\n\r\nvar lottie = {};\r\n\r\nfunction setLocationHref(href) {\r\n locationHref = href;\r\n}\r\n\r\nfunction searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n}\r\n\r\nfunction setSubframeRendering(flag) {\r\n subframeEnabled = flag;\r\n}\r\n\r\nfunction setIDPrefix(prefix) {\r\n idPrefix = prefix;\r\n}\r\n\r\nfunction loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n return animationManager.loadAnimation(params);\r\n}\r\n\r\nfunction setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n defaultCurveSegments = 200;\r\n break;\r\n default:\r\n case 'medium':\r\n defaultCurveSegments = 50;\r\n break;\r\n case 'low':\r\n defaultCurveSegments = 10;\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n}\r\n\r\nfunction inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n}\r\n\r\nfunction installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n}\r\n\r\nfunction getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n case 'matrix':\r\n return Matrix;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nlottie.play = animationManager.play;\r\nlottie.pause = animationManager.pause;\r\nlottie.setLocationHref = setLocationHref;\r\nlottie.togglePause = animationManager.togglePause;\r\nlottie.setSpeed = animationManager.setSpeed;\r\nlottie.setDirection = animationManager.setDirection;\r\nlottie.stop = animationManager.stop;\r\nlottie.searchAnimations = searchAnimations;\r\nlottie.registerAnimation = animationManager.registerAnimation;\r\nlottie.loadAnimation = loadAnimation;\r\nlottie.setSubframeRendering = setSubframeRendering;\r\nlottie.resize = animationManager.resize;\r\n// lottie.start = start;\r\nlottie.goToAndStop = animationManager.goToAndStop;\r\nlottie.destroy = animationManager.destroy;\r\nlottie.setQuality = setQuality;\r\nlottie.inBrowser = inBrowser;\r\nlottie.installPlugin = installPlugin;\r\nlottie.freeze = animationManager.freeze;\r\nlottie.unfreeze = animationManager.unfreeze;\r\nlottie.setVolume = animationManager.setVolume;\r\nlottie.mute = animationManager.mute;\r\nlottie.unmute = animationManager.unmute;\r\nlottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\nlottie.useWebWorker = function (flag) {\r\n _useWebWorker = flag;\r\n};\r\nlottie.setIDPrefix = setIDPrefix;\r\nlottie.__getFactory = getFactory;\r\nlottie.version = '5.8.1';\r\n\r\nfunction checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n}\r\n\r\nfunction getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return null;\r\n}\r\nvar standalone = '__[STANDALONE]__';\r\nvar animationData = '__[ANIMATIONDATA]__';\r\nvar renderer = '';\r\nvar queryString;\r\nif (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: '',\r\n };\r\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\r\n renderer = getQueryVariable('renderer');\r\n}\r\nvar readyStateCheckInterval = setInterval(checkReady, 100);\r\n\nreturn lottie;\n}));","// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n const minus = input < 0 ? \"-\" : \"\";\n const target = minus ? input * -1 : input;\n let result;\n\n if (target.toString().length < n) {\n result = (\"0\".repeat(n) + target).slice(-n);\n } else {\n result = target.toString();\n }\n\n return `${minus}${result}`;\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT(0|[+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n const isOffsetZoneSupported = IANAZone.isValidZone(offsetZ);\n if (dt.offset !== 0 && isOffsetZoneSupported) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration = /^-?P(?:(?:(-?\\d{1,9})Y)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,9})W)?(?:(-?\\d{1,9})D)?(?:T(?:(-?\\d{1,9})H)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds)\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 = /^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = Object.assign(\n {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\"\n },\n opts\n );\n\n const value = this.shiftTo(\"hours\", \"minutes\", \"seconds\", \"milliseconds\");\n\n let fmt = opts.format === \"basic\" ? \"hhmm\" : \"hh:mm\";\n\n if (!opts.suppressSeconds || value.seconds !== 0 || value.milliseconds !== 0) {\n fmt += opts.format === \"basic\" ? \"ss\" : \":ss\";\n if (!opts.suppressMilliseconds || value.milliseconds !== 0) {\n fmt += \".SSS\";\n }\n }\n\n let str = value.toFormat(fmt);\n\n if (opts.includePrefix) {\n str = \"T\" + str;\n }\n\n return str;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}.\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits(x => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {[string]}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `( |${NBSP})`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includePrefix = false,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n let str = toTechFormat(dt, fmt);\n\n if (includePrefix) {\n str = \"T\" + str;\n }\n\n return str;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return DateTime.now();\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n includePrefix,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const otherZoneDateTime = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return otherZoneDateTime.startOf(unit) <= inputMs && inputMs <= otherZoneDateTime.endOf(unit);\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units,\n unit\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = require(\"react\");\nconst reactNodeToString = function (reactNode) {\n let string = \"\";\n if (typeof reactNode === \"string\") {\n string = reactNode;\n }\n else if (typeof reactNode === \"number\") {\n string = reactNode.toString();\n }\n else if (reactNode instanceof Array) {\n reactNode.forEach(function (child) {\n string += reactNodeToString(child);\n });\n }\n else if ((0, react_1.isValidElement)(reactNode)) {\n string += reactNodeToString(reactNode.props.children);\n }\n return string;\n};\nexports.default = reactNodeToString;\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","const VALIDATOR_ARG_ERROR_MESSAGE =\n 'The typeValidator argument must be a function ' +\n 'with the signature function(props, propName, componentName).';\n\nconst MESSAGE_ARG_ERROR_MESSAGE =\n 'The error message is optional, but must be a string if provided.';\n\nconst propIsRequired = (condition, props, propName, componentName) => {\n if (typeof condition === 'boolean') {\n return condition;\n } else if (typeof condition === 'function') {\n return condition(props, propName, componentName);\n } else if (Boolean(condition) === true) {\n return Boolean(condition);\n }\n\n return false;\n};\n\nconst propExists = (props, propName) => Object.hasOwnProperty.call(props, propName);\n\nconst missingPropError = (props, propName, componentName, message) => {\n if (message) {\n return new Error(message);\n }\n\n return new Error(\n `Required ${props[propName]} \\`${propName}\\`` +\n ` was not specified in \\`${componentName}\\`.`,\n );\n};\n\nconst guardAgainstInvalidArgTypes = (typeValidator, message) => {\n if (typeof typeValidator !== 'function') {\n throw new TypeError(VALIDATOR_ARG_ERROR_MESSAGE);\n }\n\n if (Boolean(message) && typeof message !== 'string') {\n throw new TypeError(MESSAGE_ARG_ERROR_MESSAGE);\n }\n};\n\nconst isRequiredIf = (typeValidator, condition, message) => {\n guardAgainstInvalidArgTypes(typeValidator, message);\n\n return (props, propName, componentName, ...rest) => {\n if (propIsRequired(condition, props, propName, componentName)) {\n if (propExists(props, propName)) {\n return typeValidator(props, propName, componentName, ...rest);\n }\n\n return missingPropError(props, propName, componentName, message);\n }\n\n // Is not required, so just run typeValidator.\n return typeValidator(props, propName, componentName, ...rest);\n };\n};\n\nexport default isRequiredIf;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Prompt> outside a <Router>\");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n <Lifecycle\n onMount={self => {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n <Lifecycle\n onMount={() => {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a <Router>`\n );\n return (\n <Component\n {...remainingProps}\n {...context}\n ref={wrappedComponentRef}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import { useState, useRef, useEffect, useMemo } from 'react';\nimport createDebounce from 'debounce';\n\nfunction useMeasure(_temp) {\n let {\n debounce,\n scroll,\n polyfill,\n offsetSize\n } = _temp === void 0 ? {\n debounce: 0,\n scroll: false,\n offsetSize: false\n } : _temp;\n const ResizeObserver = polyfill || (typeof window === 'undefined' ? class ResizeObserver {} : window.ResizeObserver);\n\n if (!ResizeObserver) {\n throw new Error('This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills');\n }\n\n const [bounds, set] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n bottom: 0,\n right: 0,\n x: 0,\n y: 0\n }); // keep all state in a ref\n\n const state = useRef({\n element: null,\n scrollContainers: null,\n resizeObserver: null,\n lastBounds: bounds\n }); // set actual debounce values early, so effects know if they should react accordingly\n\n const scrollDebounce = debounce ? typeof debounce === 'number' ? debounce : debounce.scroll : null;\n const resizeDebounce = debounce ? typeof debounce === 'number' ? debounce : debounce.resize : null; // make sure to update state only as long as the component is truly mounted\n\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => void (mounted.current = false);\n }); // memoize handlers, so event-listeners know when they should update\n\n const [forceRefresh, resizeChange, scrollChange] = useMemo(() => {\n const callback = () => {\n if (!state.current.element) return;\n const {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n } = state.current.element.getBoundingClientRect();\n const size = {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n };\n\n if (state.current.element instanceof HTMLElement && offsetSize) {\n size.height = state.current.element.offsetHeight;\n size.width = state.current.element.offsetWidth;\n }\n\n Object.freeze(size);\n if (mounted.current && !areBoundsEqual(state.current.lastBounds, size)) set(state.current.lastBounds = size);\n };\n\n return [callback, resizeDebounce ? createDebounce(callback, resizeDebounce) : callback, scrollDebounce ? createDebounce(callback, scrollDebounce) : callback];\n }, [set, offsetSize, scrollDebounce, resizeDebounce]); // cleanup current scroll-listeners / observers\n\n function removeListeners() {\n if (state.current.scrollContainers) {\n state.current.scrollContainers.forEach(element => element.removeEventListener('scroll', scrollChange, true));\n state.current.scrollContainers = null;\n }\n\n if (state.current.resizeObserver) {\n state.current.resizeObserver.disconnect();\n state.current.resizeObserver = null;\n }\n } // add scroll-listeners / observers\n\n\n function addListeners() {\n if (!state.current.element) return;\n state.current.resizeObserver = new ResizeObserver(scrollChange);\n state.current.resizeObserver.observe(state.current.element);\n\n if (scroll && state.current.scrollContainers) {\n state.current.scrollContainers.forEach(scrollContainer => scrollContainer.addEventListener('scroll', scrollChange, {\n capture: true,\n passive: true\n }));\n }\n } // the ref we expose to the user\n\n\n const ref = node => {\n if (!node || node === state.current.element) return;\n removeListeners();\n state.current.element = node;\n state.current.scrollContainers = findScrollContainers(node);\n addListeners();\n }; // add general event listeners\n\n\n useOnWindowScroll(scrollChange, Boolean(scroll));\n useOnWindowResize(resizeChange); // respond to changes that are relevant for the listeners\n\n useEffect(() => {\n removeListeners();\n addListeners();\n }, [scroll, scrollChange, resizeChange]); // remove all listeners when the components unmounts\n\n useEffect(() => removeListeners, []);\n return [ref, bounds, forceRefresh];\n} // Adds native resize listener to window\n\n\nfunction useOnWindowResize(onWindowResize) {\n useEffect(() => {\n const cb = onWindowResize;\n window.addEventListener('resize', cb);\n return () => void window.removeEventListener('resize', cb);\n }, [onWindowResize]);\n}\n\nfunction useOnWindowScroll(onScroll, enabled) {\n useEffect(() => {\n if (enabled) {\n const cb = onScroll;\n window.addEventListener('scroll', cb, {\n capture: true,\n passive: true\n });\n return () => void window.removeEventListener('scroll', cb, true);\n }\n }, [onScroll, enabled]);\n} // Returns a list of scroll offsets\n\n\nfunction findScrollContainers(element) {\n const result = [];\n if (!element || element === document.body) return result;\n const {\n overflow,\n overflowX,\n overflowY\n } = window.getComputedStyle(element);\n if ([overflow, overflowX, overflowY].some(prop => prop === 'auto' || prop === 'scroll')) result.push(element);\n return [...result, ...findScrollContainers(element.parentElement)];\n} // Checks if element boundaries are equal\n\n\nconst keys = ['x', 'y', 'top', 'bottom', 'left', 'right', 'width', 'height'];\n\nconst areBoundsEqual = (a, b) => keys.every(key => a[key] === b[key]);\n\nexport { useMeasure as default };\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var E_NOSCROLL = new Error('Element already at target scroll position')\nvar E_CANCELLED = new Error('Scroll cancelled')\nvar min = Math.min\nvar ms = Date.now\n\nmodule.exports = {\n left: make('scrollLeft'),\n top: make('scrollTop')\n}\n\nfunction make (prop) {\n return function scroll (el, to, opts, cb) {\n opts = opts || {}\n\n if (typeof opts == 'function') cb = opts, opts = {}\n if (typeof cb != 'function') cb = noop\n\n var start = ms()\n var from = el[prop]\n var ease = opts.ease || inOutSine\n var duration = !isNaN(opts.duration) ? +opts.duration : 350\n var cancelled = false\n\n return from === to ?\n cb(E_NOSCROLL, el[prop]) :\n requestAnimationFrame(animate), cancel\n\n function cancel () {\n cancelled = true\n }\n\n function animate (timestamp) {\n if (cancelled) return cb(E_CANCELLED, el[prop])\n\n var now = ms()\n var time = min(1, ((now - start) / duration))\n var eased = ease(time)\n\n el[prop] = (eased * (to - from)) + from\n\n time < 1 ?\n requestAnimationFrame(animate) :\n requestAnimationFrame(function () {\n cb(null, el[prop])\n })\n }\n }\n}\n\nfunction inOutSine (n) {\n return 0.5 * (1 - Math.cos(Math.PI * n))\n}\n\nfunction noop () {}\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable {\n private focused?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibillitychange and focus\n window.addEventListener('visibilitychange', listener, false)\n window.addEventListener('focus', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n window.removeEventListener('focus', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n const changed = this.focused !== focused\n if (changed) {\n this.focused = focused\n this.onFocus()\n }\n }\n\n onFocus(): void {\n this.listeners.forEach(({ listener }) => {\n listener()\n })\n }\n\n isFocused(): boolean {\n if (typeof this.focused === 'boolean') {\n return this.focused\n }\n\n // document global can be unavailable in react native\n if (typeof document === 'undefined') {\n return true\n }\n\n return [undefined, 'visible', 'prerender'].includes(\n document.visibilityState,\n )\n }\n}\n\nexport const focusManager = new FocusManager()\n","import type { QueryBehavior } from './query'\n\nimport type {\n InfiniteData,\n QueryFunctionContext,\n QueryOptions,\n RefetchQueryFilters,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = () => {\n const refetchPage: RefetchQueryFilters['refetchPage'] | undefined =\n context.fetchOptions?.meta?.refetchPage\n const fetchMore = context.fetchOptions?.meta?.fetchMore\n const pageParam = fetchMore?.pageParam\n const isFetchingNextPage = fetchMore?.direction === 'forward'\n const isFetchingPreviousPage = fetchMore?.direction === 'backward'\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n let newPageParams = oldPageParams\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal?.aborted) {\n cancelled = true\n } else {\n context.signal?.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() =>\n Promise.reject(\n `Missing queryFn for queryKey '${context.options.queryHash}'`,\n ))\n\n const buildNewPages = (\n pages: unknown[],\n param: unknown,\n page: unknown,\n previous?: boolean,\n ) => {\n newPageParams = previous\n ? [param, ...newPageParams]\n : [...newPageParams, param]\n return previous ? [page, ...pages] : [...pages, page]\n }\n\n // Create function to fetch a page\n const fetchPage = (\n pages: unknown[],\n manual?: boolean,\n param?: unknown,\n previous?: boolean,\n ): Promise<unknown[]> => {\n if (cancelled) {\n return Promise.reject('Cancelled')\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages)\n }\n\n const queryFnContext: QueryFunctionContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const queryFnResult = queryFn(queryFnContext)\n\n const promise = Promise.resolve(queryFnResult).then((page) =>\n buildNewPages(pages, param, page, previous),\n )\n\n return promise\n }\n\n let promise: Promise<unknown[]>\n\n // Fetch first page?\n if (!oldPages.length) {\n promise = fetchPage([])\n }\n\n // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getNextPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param)\n }\n\n // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getPreviousPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param, true)\n }\n\n // Refetch pages\n else {\n newPageParams = []\n\n const manual = typeof context.options.getNextPageParam === 'undefined'\n\n const shouldFetchFirstPage =\n refetchPage && oldPages[0]\n ? refetchPage(oldPages[0], 0, oldPages)\n : true\n\n // Fetch first page\n promise = shouldFetchFirstPage\n ? fetchPage([], manual, oldPageParams[0])\n : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0]))\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then((pages) => {\n const shouldFetchNextPage =\n refetchPage && oldPages[i]\n ? refetchPage(oldPages[i], i, oldPages)\n : true\n\n if (shouldFetchNextPage) {\n const param = manual\n ? oldPageParams[i]\n : getNextPageParam(context.options, pages)\n return fetchPage(pages, manual, param)\n }\n return Promise.resolve(\n buildNewPages(pages, oldPageParams[i], oldPages[i]),\n )\n })\n }\n }\n\n const finalPromise = promise.then((pages) => ({\n pages,\n pageParams: newPageParams,\n }))\n\n return finalPromise\n }\n },\n }\n}\n\nexport function getNextPageParam(\n options: QueryOptions<any, any>,\n pages: unknown[],\n): unknown | undefined {\n return options.getNextPageParam?.(pages[pages.length - 1], pages)\n}\n\nexport function getPreviousPageParam(\n options: QueryOptions<any, any>,\n pages: unknown[],\n): unknown | undefined {\n return options.getPreviousPageParam?.(pages[0], pages)\n}\n\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasNextPage(\n options: QueryOptions<any, any, any, any>,\n pages?: unknown,\n): boolean | undefined {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages)\n return (\n typeof nextPageParam !== 'undefined' &&\n nextPageParam !== null &&\n nextPageParam !== false\n )\n }\n return\n}\n\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasPreviousPage(\n options: QueryOptions<any, any, any, any>,\n pages?: unknown,\n): boolean | undefined {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages)\n return (\n typeof previousPageParam !== 'undefined' &&\n previousPageParam !== null &&\n previousPageParam !== false\n )\n }\n return\n}\n","export interface Logger {\n log: LogFunction\n warn: LogFunction\n error: LogFunction\n}\n\ntype LogFunction = (...args: any[]) => void\n\nexport const defaultLogger: Logger = console\n","import { defaultLogger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { canFetch, createRetryer } from './retryer'\nimport type { MutationMeta, MutationOptions, MutationStatus } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.defaultOptions = config.defaultOptions\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.defaultOptions, ...options }\n\n this.updateCacheTime(this.options.cacheTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.observers = this.observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return this.retryer?.continue() ?? this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: (failureCount, error) => {\n this.dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.retryer.promise\n }\n\n const restored = this.state.status === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\n\n this.dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.mutationCache.config.onError?.(\n error,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n undefined,\n error,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n throw error\n } finally {\n this.dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n private dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n","import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\ntype BatchCallsCallback<T extends unknown[]> = (...args: T) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends unknown[]>(\n callback: BatchCallsCallback<T>,\n ): BatchCallsCallback<T> => {\n return (...args) => {\n schedule(() => {\n callback(...args)\n })\n }\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nconst onlineEvents = ['online', 'offline'] as const\n\nexport class OnlineManager extends Subscribable {\n private online?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n onlineEvents.forEach((event) => {\n window.addEventListener(event, listener, false)\n })\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach((event) => {\n window.removeEventListener(event, listener)\n })\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n const changed = this.online !== online\n\n if (changed) {\n this.online = online\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach(({ listener }) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.online === 'boolean') {\n return this.online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n","import {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Action, FetchOptions, Query, QueryState } from './query'\nimport type { QueryClient } from './queryClient'\nimport type { DefaultedQueryObserverOptions, RefetchPageFilters } from './types'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n cache?: boolean\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n private client: QueryClient\n private currentQuery!: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n private currentQueryInitialState!: QueryState<TQueryData, TError>\n private currentResult!: QueryObserverResult<TData, TError>\n private currentResultState?: QueryState<TQueryData, TError>\n private currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n private previousQueryResult?: QueryObserverResult<TData, TError>\n private selectError: TError | null\n private selectFn?: (data: TQueryData) => TData\n private selectResult?: TData\n private staleTimeoutId?: ReturnType<typeof setTimeout>\n private refetchIntervalId?: ReturnType<typeof setInterval>\n private currentRefetchInterval?: number | false\n private trackedProps!: Set<keyof QueryObserverResult>\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.client = client\n this.options = options\n this.trackedProps = new Set()\n this.selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.remove = this.remove.bind(this)\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch()\n }\n\n this.updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.clearStaleTimeout()\n this.clearRefetchInterval()\n this.currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.currentQuery\n\n this.options = this.client.defaultQueryOptions(options)\n\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof options?.isDataEqual !== 'undefined'\n ) {\n this.client\n .getLogger()\n .error(\n `The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option`,\n )\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.executeFetch()\n }\n\n // Update result\n this.updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.currentRefetchInterval)\n ) {\n this.updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.client.getQueryCache().build(this.client, options)\n\n const result = this.createResult(query, options)\n\n if (shouldAssignObserverCurrentProperties(this, result, options)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult everytime\n // an observer reads an optimistic value.\n\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.currentResult = result\n this.currentResultOptions = this.options\n this.currentResultState = this.currentQuery.state\n }\n return result\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.currentQuery\n }\n\n remove(): void {\n this.client.getQueryCache().remove(this.currentQuery)\n }\n\n refetch<TPageData>({\n refetchPage,\n ...options\n }: RefetchOptions & RefetchPageFilters<TPageData> = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: { refetchPage },\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.client.defaultQueryOptions(options)\n\n const query = this.client\n .getQueryCache()\n .build(this.client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.updateResult()\n return this.currentResult\n })\n }\n\n private executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n private updateStaleTimeout(): void {\n this.clearStaleTimeout()\n\n if (\n isServer ||\n this.currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult()\n }\n }, timeout)\n }\n\n private computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.currentResult.data, this.currentQuery)\n : this.options.refetchInterval ?? false\n }\n\n private updateRefetchInterval(nextInterval: number | false): void {\n this.clearRefetchInterval()\n\n this.currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.currentRefetchInterval) ||\n this.currentRefetchInterval === 0\n ) {\n return\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.executeFetch()\n }\n }, this.currentRefetchInterval)\n }\n\n private updateTimers(): void {\n this.updateStaleTimeout()\n this.updateRefetchInterval(this.computeRefetchInterval())\n }\n\n private clearStaleTimeout(): void {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId)\n this.staleTimeoutId = undefined\n }\n }\n\n private clearRefetchInterval(): void {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId)\n this.refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.currentQuery\n const prevOptions = this.options\n const prevResult = this.currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.currentResultState\n const prevResultOptions = this.currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.currentQueryInitialState\n const prevQueryResult = queryChange\n ? this.currentResult\n : this.previousQueryResult\n\n const { state } = query\n let { dataUpdatedAt, error, errorUpdatedAt, fetchStatus, status } = state\n let isPreviousData = false\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!dataUpdatedAt) {\n status = 'loading'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Keep previous data if needed\n if (\n options.keepPreviousData &&\n !state.dataUpdatedAt &&\n prevQueryResult?.isSuccess &&\n status !== 'error'\n ) {\n data = prevQueryResult.data\n dataUpdatedAt = prevQueryResult.dataUpdatedAt\n status = prevQueryResult.status\n isPreviousData = true\n }\n // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.selectFn\n ) {\n data = this.selectResult\n } else {\n try {\n this.selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.selectResult = data\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'loading'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (options.placeholderData as PlaceholderDataFunction<TQueryData>)()\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(prevResult?.data, placeholderData, options) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.selectError) {\n error = this.selectError as any\n data = this.selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isLoading = status === 'loading'\n const isError = status === 'error'\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.currentQuery, this.options)\n this.currentResultState = this.currentQuery.state\n this.currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n this.currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = { cache: true }\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n const notifyOnChangePropsValue =\n typeof notifyOnChangeProps === 'function'\n ? notifyOnChangeProps()\n : notifyOnChangeProps\n\n if (\n notifyOnChangePropsValue === 'all' ||\n (!notifyOnChangePropsValue && !this.trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.trackedProps,\n )\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error')\n }\n\n return Object.keys(this.currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n private updateQuery(): void {\n const query = this.client.getQueryCache().build(this.client, this.options)\n\n if (query === this.currentQuery) {\n return\n }\n\n const prevQuery = this.currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.currentQuery = query\n this.currentQueryInitialState = query.state\n this.previousQueryResult = this.currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.updateTimers()\n }\n }\n\n private notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.currentResult.data!)\n this.options.onSettled?.(this.currentResult.data!, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.currentResult.error!)\n this.options.onSettled?.(undefined, this.currentResult.error!)\n }\n\n // Then trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n\n // Then the cache listeners\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated',\n })\n }\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: typeof options['refetchOnMount'] &\n typeof options['refetchOnWindowFocus'] &\n typeof options['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n\n// this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\nfunction shouldAssignObserverCurrentProperties<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n optimisticResult: QueryObserverResult<TData, TError>,\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n) {\n // it is important to keep this condition like this for three reasons:\n // 1. It will get removed in the v5\n // 2. it reads: don't update the properties if we want to keep the previous\n // data.\n // 3. The opposite condition (!options.keepPreviousData) would fallthrough\n // and will result in a bad decision\n if (options.keepPreviousData) {\n return false\n }\n\n // this means we want to put some placeholder data when pending and queryKey\n // changed.\n if (options.placeholderData !== undefined) {\n // re-assign properties only if current data is placeholder data\n // which means that data did not arrive yet, so, if there is some cached data\n // we need to \"prepare\" to receive it\n return optimisticResult.isPlaceholderData\n }\n\n // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true\n }\n\n // basically, just keep previous properties if nothing changed\n return false\n}\n","import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n cacheTime!: number\n private gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.cacheTime)\n }\n }\n\n protected updateCacheTime(newCacheTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(\n this.cacheTime || 0,\n newCacheTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout)\n this.gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n","import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = unknown> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = unknown> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = unknown>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n","type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<{ listener: TListener }>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n const identity = { listener }\n this.listeners.add(identity)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(identity)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n","import type { Mutation } from './mutation'\nimport type { Query } from './query'\nimport type {\n FetchStatus,\n MutationFunction,\n MutationKey,\n MutationOptions,\n QueryFunction,\n QueryKey,\n QueryOptions,\n} from './types'\n\n// TYPES\n\nexport interface QueryFilters {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: QueryKey\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (mutation: Mutation<any, any, any>) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: MutationKey\n /**\n * Include or exclude fetching mutations\n */\n fetching?: boolean\n}\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in window\n\nexport function noop(): undefined {\n return undefined\n}\n\nexport function functionalUpdate<TInput, TOutput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => !array2.includes(x))\n}\n\nexport function replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function parseQueryArgs<\n TOptions extends QueryOptions<any, any, any, TQueryKey>,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | TOptions,\n arg2?: QueryFunction<any, TQueryKey> | TOptions,\n arg3?: TOptions,\n): TOptions {\n if (!isQueryKey(arg1)) {\n return arg1 as TOptions\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3, queryKey: arg1, queryFn: arg2 } as TOptions\n }\n\n return { ...arg2, queryKey: arg1 } as TOptions\n}\n\nexport function parseMutationArgs<\n TOptions extends MutationOptions<any, any, any, any>,\n>(\n arg1: MutationKey | MutationFunction<any, any> | TOptions,\n arg2?: MutationFunction<any, any> | TOptions,\n arg3?: TOptions,\n): TOptions {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3, mutationKey: arg1, mutationFn: arg2 } as TOptions\n }\n return { ...arg2, mutationKey: arg1 } as TOptions\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2, mutationFn: arg1 } as TOptions\n }\n\n return { ...arg1 } as TOptions\n}\n\nexport function parseFilterArgs<\n TFilters extends QueryFilters,\n TOptions = unknown,\n>(\n arg1?: QueryKey | TFilters,\n arg2?: TFilters | TOptions,\n arg3?: TOptions,\n): [TFilters, TOptions | undefined] {\n return (\n isQueryKey(arg1) ? [{ ...arg2, queryKey: arg1 }, arg3] : [arg1 || {}, arg2]\n ) as [TFilters, TOptions]\n}\n\nexport function parseMutationFilterArgs<\n TFilters extends MutationFilters,\n TOptions = unknown,\n>(\n arg1?: QueryKey | TFilters,\n arg2?: TFilters | TOptions,\n arg3?: TOptions,\n): [TFilters, TOptions | undefined] {\n return (\n isQueryKey(arg1)\n ? [{ ...arg2, mutationKey: arg1 }, arg3]\n : [arg1 || {}, arg2]\n ) as [TFilters, TOptions]\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query<any, any, any, any>,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (\n typeof fetchStatus !== 'undefined' &&\n fetchStatus !== query.state.fetchStatus\n ) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation<any, any>,\n): boolean {\n const { exact, fetching, predicate, mutationKey } = filters\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (\n hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)\n ) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (\n typeof fetching === 'boolean' &&\n (mutation.state.status === 'loading') !== fetching\n ) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(\n queryKey: TQueryKey,\n options?: QueryOptions<any, any, any, TQueryKey>,\n): string {\n const hashFn = options?.queryKeyHashFn || hashQueryKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashQueryKey(queryKey: QueryKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean {\n return partialDeepEqual(a, b)\n}\n\n/**\n * Checks if `b` partially matches with `a`.\n */\nexport function partialDeepEqual(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some((key) => !partialDeepEqual(a[key], b[key]))\n }\n\n return false\n}\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aSize = array ? a.length : Object.keys(a).length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? [] : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i]\n copy[key] = replaceEqualDeep(a[key], b[key])\n if (copy[key] === a[key]) {\n equalItems++\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n }\n\n return b\n}\n\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\nexport function shallowEqualObjects<T>(a: T, b: T): boolean {\n if ((a && !b) || (b && !a)) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isError(value: any): value is Error {\n return value instanceof Error\n}\n\nexport function sleep(timeout: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nexport function scheduleMicrotask(callback: () => void) {\n sleep(0).then(callback)\n}\n\nexport function getAbortController(): AbortController | undefined {\n if (typeof AbortController === 'function') {\n return new AbortController()\n }\n return\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions<any, any, any, any>,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual?.(prevData, data)) {\n return prevData as TData\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data)\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n","'use client'\nimport * as React from 'react'\n\nimport type { QueryClient } from '@tanstack/query-core'\nimport type { ContextOptions } from './types'\n\ndeclare global {\n interface Window {\n ReactQueryClientContext?: React.Context<QueryClient | undefined>\n }\n}\n\nexport const defaultContext = React.createContext<QueryClient | undefined>(\n undefined,\n)\nconst QueryClientSharingContext = React.createContext<boolean>(false)\n\n// If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\nfunction getQueryClientContext(\n context: React.Context<QueryClient | undefined> | undefined,\n contextSharing: boolean,\n) {\n if (context) {\n return context\n }\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext\n }\n\n return window.ReactQueryClientContext\n }\n\n return defaultContext\n}\n\nexport const useQueryClient = ({ context }: ContextOptions = {}) => {\n const queryClient = React.useContext(\n getQueryClientContext(context, React.useContext(QueryClientSharingContext)),\n )\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return queryClient\n}\n\ntype QueryClientProviderPropsBase = {\n client: QueryClient\n children?: React.ReactNode\n}\ntype QueryClientProviderPropsWithContext = ContextOptions & {\n contextSharing?: never\n} & QueryClientProviderPropsBase\ntype QueryClientProviderPropsWithContextSharing = {\n context?: never\n contextSharing?: boolean\n} & QueryClientProviderPropsBase\n\nexport type QueryClientProviderProps =\n | QueryClientProviderPropsWithContext\n | QueryClientProviderPropsWithContextSharing\n\nexport const QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false,\n}: QueryClientProviderProps): JSX.Element => {\n React.useEffect(() => {\n client.mount()\n return () => {\n client.unmount()\n }\n }, [client])\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const Context = getQueryClientContext(context, contextSharing)\n\n return (\n <QueryClientSharingContext.Provider value={!context && contextSharing}>\n <Context.Provider value={client}>{children}</Context.Provider>\n </QueryClientSharingContext.Provider>\n )\n}\n","'use client'\nimport * as React from 'react'\n\n// CONTEXT\n\nexport interface QueryErrorResetBoundaryValue {\n clearReset: () => void\n isReset: () => boolean\n reset: () => void\n}\n\nfunction createValue(): QueryErrorResetBoundaryValue {\n let isReset = false\n return {\n clearReset: () => {\n isReset = false\n },\n reset: () => {\n isReset = true\n },\n isReset: () => {\n return isReset\n },\n }\n}\n\nconst QueryErrorResetBoundaryContext = React.createContext(createValue())\n\n// HOOK\n\nexport const useQueryErrorResetBoundary = () =>\n React.useContext(QueryErrorResetBoundaryContext)\n\n// COMPONENT\n\nexport interface QueryErrorResetBoundaryProps {\n children:\n | ((value: QueryErrorResetBoundaryValue) => React.ReactNode)\n | React.ReactNode\n}\n\nexport const QueryErrorResetBoundary = ({\n children,\n}: QueryErrorResetBoundaryProps) => {\n const [value] = React.useState(() => createValue())\n return (\n <QueryErrorResetBoundaryContext.Provider value={value}>\n {typeof children === 'function'\n ? (children as Function)(value)\n : children}\n </QueryErrorResetBoundaryContext.Provider>\n )\n}\n","'use client'\nimport * as React from 'react'\n\nconst IsRestoringContext = React.createContext(false)\n\nexport const useIsRestoring = () => React.useContext(IsRestoringContext)\nexport const IsRestoringProvider = IsRestoringContext.Provider\n","'use client'\nimport * as React from 'react'\nimport { shouldThrowError } from './utils'\nimport type {\n DefaultedQueryObserverOptions,\n Query,\n QueryKey,\n QueryObserverResult,\n UseErrorBoundary,\n} from '@tanstack/query-core'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\n\nexport const ensurePreventErrorBoundaryRetry = <\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) => {\n if (options.suspense || options.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false\n }\n }\n}\n\nexport const useClearResetErrorBoundary = (\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset()\n }, [errorResetBoundary])\n}\n\nexport const getHasError = <\n TData,\n TError,\n TQueryFnData,\n TQueryData,\n TQueryKey extends QueryKey,\n>({\n result,\n errorResetBoundary,\n useErrorBoundary,\n query,\n}: {\n result: QueryObserverResult<TData, TError>\n errorResetBoundary: QueryErrorResetBoundaryValue\n useErrorBoundary: UseErrorBoundary<\n TQueryFnData,\n TError,\n TQueryData,\n TQueryKey\n >\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n}) => {\n return (\n result.isError &&\n !errorResetBoundary.isReset() &&\n !result.isFetching &&\n shouldThrowError(useErrorBoundary, [result.error, query])\n )\n}\n","import type { DefaultedQueryObserverOptions } from '@tanstack/query-core'\nimport type { QueryObserver } from '@tanstack/query-core'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\nimport type { QueryObserverResult } from '@tanstack/query-core'\nimport type { QueryKey } from '@tanstack/query-core'\n\nexport const ensureStaleTime = (\n defaultedOptions: DefaultedQueryObserverOptions<any, any, any, any, any>,\n) => {\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000\n }\n }\n}\n\nexport const willFetch = (\n result: QueryObserverResult<any, any>,\n isRestoring: boolean,\n) => result.isLoading && result.isFetching && !isRestoring\n\nexport const shouldSuspend = (\n defaultedOptions:\n | DefaultedQueryObserverOptions<any, any, any, any, any>\n | undefined,\n result: QueryObserverResult<any, any>,\n isRestoring: boolean,\n) => defaultedOptions?.suspense && willFetch(result, isRestoring)\n\nexport const fetchOptimistic = <\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n defaultedOptions: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) =>\n observer\n .fetchOptimistic(defaultedOptions)\n .then(({ data }) => {\n defaultedOptions.onSuccess?.(data as TData)\n defaultedOptions.onSettled?.(data, null)\n })\n .catch((error) => {\n errorResetBoundary.clearReset()\n defaultedOptions.onError?.(error)\n defaultedOptions.onSettled?.(undefined, error)\n })\n","'use client'\nimport * as React from 'react'\n\nimport { notifyManager } from '@tanstack/query-core'\nimport { useSyncExternalStore } from './useSyncExternalStore'\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'\nimport { useQueryClient } from './QueryClientProvider'\nimport { useIsRestoring } from './isRestoring'\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary,\n} from './errorBoundaryUtils'\nimport { ensureStaleTime, fetchOptimistic, shouldSuspend } from './suspense'\nimport type { QueryKey, QueryObserver } from '@tanstack/query-core'\nimport type { UseBaseQueryOptions } from './types'\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: UseBaseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n Observer: typeof QueryObserver,\n) {\n const queryClient = useQueryClient({ context: options.context })\n const isRestoring = useIsRestoring()\n const errorResetBoundary = useQueryErrorResetBoundary()\n const defaultedOptions = queryClient.defaultQueryOptions(options)\n\n // Make sure results are optimistically set in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring\n ? 'isRestoring'\n : 'optimistic'\n\n // Include callbacks in batch renders\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(\n defaultedOptions.onError,\n )\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(\n defaultedOptions.onSuccess,\n )\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(\n defaultedOptions.onSettled,\n )\n }\n\n ensureStaleTime(defaultedOptions)\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary)\n\n useClearResetErrorBoundary(errorResetBoundary)\n\n const [observer] = React.useState(\n () =>\n new Observer<TQueryFnData, TError, TData, TQueryData, TQueryKey>(\n queryClient,\n defaultedOptions,\n ),\n )\n\n const result = observer.getOptimisticResult(defaultedOptions)\n\n useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = isRestoring\n ? () => undefined\n : observer.subscribe(notifyManager.batchCalls(onStoreChange))\n\n // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n observer.updateResult()\n\n return unsubscribe\n },\n [observer, isRestoring],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, { listeners: false })\n }, [defaultedOptions, observer])\n\n // Handle suspense\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n }\n\n // Handle error boundary\n if (\n getHasError({\n result,\n errorResetBoundary,\n useErrorBoundary: defaultedOptions.useErrorBoundary,\n query: observer.getCurrentQuery(),\n })\n ) {\n throw result.error\n }\n\n // Handle result property usage tracking\n return !defaultedOptions.notifyOnChangeProps\n ? observer.trackResult(result)\n : result\n}\n","import { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n InfiniteData<TData>,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage({ pageParam, ...options }: FetchNextPageOptions = {}): Promise<\n InfiniteQueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward', pageParam },\n },\n })\n }\n\n fetchPreviousPage({\n pageParam,\n ...options\n }: FetchPreviousPageOptions = {}): Promise<\n InfiniteQueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward', pageParam },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data?.pages),\n hasPreviousPage: hasPreviousPage(options, state.data?.pages),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n","'use client'\nimport { InfiniteQueryObserver, parseQueryArgs } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserver,\n} from '@tanstack/query-core'\nimport type { UseInfiniteQueryOptions, UseInfiniteQueryResult } from './types'\n\n// HOOK\n\nexport function useInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n): UseInfiniteQueryResult<TData, TError>\nexport function useInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n 'queryKey'\n >,\n): UseInfiniteQueryResult<TData, TError>\nexport function useInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: Omit<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n 'queryKey' | 'queryFn'\n >,\n): UseInfiniteQueryResult<TData, TError>\nexport function useInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1:\n | TQueryKey\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n arg3?: UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n): UseInfiniteQueryResult<TData, TError> {\n const options = parseQueryArgs(arg1, arg2, arg3)\n return useBaseQuery(\n options,\n InfiniteQueryObserver as typeof QueryObserver,\n ) as UseInfiniteQueryResult<TData, TError>\n}\n","import { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport { shallowEqualObjects } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverOptions,\n MutationObserverResult,\n} from './types'\nimport type { Action, Mutation } from './mutation'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this,\n })\n }\n this.currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n","'use client'\nimport * as React from 'react'\nimport {\n MutationObserver,\n notifyManager,\n parseMutationArgs,\n} from '@tanstack/query-core'\nimport { useSyncExternalStore } from './useSyncExternalStore'\n\nimport { useQueryClient } from './QueryClientProvider'\nimport { shouldThrowError } from './utils'\nimport type { MutationFunction, MutationKey } from '@tanstack/query-core'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n mutationFn?: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const options = parseMutationArgs(arg1, arg2, arg3)\n const queryClient = useQueryClient({ context: options.context })\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n queryClient,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.useErrorBoundary, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n","'use client'\nimport { QueryObserver, parseQueryArgs } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type { QueryFunction, QueryKey } from '@tanstack/query-core'\nimport type {\n DefinedUseQueryResult,\n UseQueryOptions,\n UseQueryResult,\n} from './types'\n\n// HOOK\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): DefinedUseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): DefinedUseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n): UseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): DefinedUseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, TQueryKey>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryResult<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, TQueryKey>\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryResult<TData, TError> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n return useBaseQuery(parsedOptions, QueryObserver)\n}\n","'use client'\n// Temporary workaround due to an issue with react-native uSES - https://github.com/TanStack/query/pull/3601\nimport { useSyncExternalStore as uSES } from 'use-sync-external-store/shim/index.js'\n\nexport const useSyncExternalStore = uSES\n","export function shouldThrowError<T extends (...args: any[]) => boolean>(\n _useErrorBoundary: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params)\n }\n\n return !!_useErrorBoundary\n}\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import * as React from 'react';\nimport { useId, useRef, useInsertionEffect } from 'react';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * <AnimatePresence>\n * {items.map(item => (\n * <motion.div\n * key={item.id}\n * initial={{ opacity: 0 }}\n * animate={{ opacity: 1 }}\n * exit={{ opacity: 0 }}\n * />\n * ))}\n * </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exitingChildren.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n // clean up the exiting children map\n exitingChildren.delete(key);\n // compute the keys of children that were rendered once but are no longer present\n // this could happen in case of too many fast consequent renderings\n // @link https://github.com/framer/motion/issues/2023\n const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey));\n // clean up the all children map\n leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey));\n // make sure to render only the children that are actually visible\n presentChildren.current = filteredChildren.filter((presentChild) => {\n const presentChildKey = getChildKey(presentChild);\n return (\n // filter out the node exiting\n presentChildKey === key ||\n // filter out the leftover children\n leftOverKeys.includes(presentChildKey));\n });\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (React.createElement(React.Fragment, null, exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","class Queue {\n constructor() {\n this.order = [];\n this.scheduled = new Set();\n }\n add(process) {\n if (!this.scheduled.has(process)) {\n this.scheduled.add(process);\n this.order.push(process);\n return true;\n }\n }\n remove(process) {\n const index = this.order.indexOf(process);\n if (index !== -1) {\n this.order.splice(index, 1);\n this.scheduled.delete(process);\n }\n }\n clear() {\n this.order.length = 0;\n this.scheduled.clear();\n }\n}\nfunction createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Queue();\n let nextFrame = new Queue();\n let numToRun = 0;\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (queue.add(callback) && addToCurrentFrame && isProcessing) {\n // If we're adding it to the currently running queue, update its measured size\n numToRun = thisFrame.order.length;\n }\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.remove(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n numToRun = thisFrame.order.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = thisFrame.order[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"prepare\",\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0,\n timestamp: 0,\n isProcessing: false,\n };\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n }, {});\n const processStep = (stepId) => steps[stepId].process(state);\n const processBatch = () => {\n const timestamp = performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n stepsOrder.forEach(processStep);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => stepsOrder.forEach((key) => steps[key].cancel(process));\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, steps };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { SwitchLayoutGroupContext } from '../context/SwitchLayoutGroupContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement);\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n const isStrict = useContext(LazyContext).strict;\n if (context.visualElement) {\n MeasureLayout = context.visualElement.loadFeatures(\n // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n configAndProps, isStrict, preloadedFeatures, initialLayoutGroupConfig);\n }\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(MotionContext.Provider, { value: context },\n MeasureLayout && context.visualElement ? (React.createElement(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null,\n useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n useInsertionEffect(() => {\n visualElement && visualElement.update(props, presenceContext);\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const wantsHandoff = useRef(Boolean(props[optimizedAppearDataAttribute] && !window.HandoffComplete));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n visualElement.render();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n visualElement.updateFeatures();\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n wantsHandoff.current = false;\n // This ensures all future calls to animateChanges() will run in useEffect\n window.HandoffComplete = true;\n }\n });\n return visualElement;\n}\n\nexport { useVisualElement };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return <div ref={ref} />\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(transform, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n if (transform[key] !== undefined) {\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${transform[key]}) `;\n }\n }\n if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = checkStringStartsWith(\"--\");\nconst isCSSVariableToken = checkStringStartsWith(\"var(--\");\nconst cssVariableRegex = /var\\s*\\(\\s*--[\\w-]+(\\s*,\\s*(?:(?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)+)?\\s*\\)/g;\n\nexport { cssVariableRegex, isCSSVariableName, isCSSVariableToken };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","/**\n * TODO: When we move from string as a source of truth to data models\n * everything in this folder should probably be referred to as models vs types\n */\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))$/i;\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nexport { colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType(\"deg\");\nconst percent = createUnitType(\"%\");\nconst px = createUnitType(\"px\");\nconst vh = createUnitType(\"vh\");\nconst vw = createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { px, degrees, progressPercentage } from '../../../value/types/numbers/units.mjs';\nimport { int } from './type-int.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n const { style, vars, transform, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state.transform, options, transformIsNone, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n return props.transformValues ? props.transformValues(style) : style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, options, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = {\n ...filteredProps,\n ...visualProps,\n ref,\n };\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n };\n return useRender;\n}\n\nexport { createUseRender };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style && isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps);\n for (const key in props) {\n if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n frame.read(() => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n });\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","import { isPrimaryPointer } from './utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: {\n x: event[pointType + \"X\"],\n y: event[pointType + \"Y\"],\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","import { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = \"pointer\" + (isActive ? \"enter\" : \"leave\");\n const callbackName = \"onHover\" + (isActive ? \"Start\" : \"End\");\n const handleEvent = (event, info) => {\n if (event.pointerType === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n if (props[callbackName]) {\n frame.update(() => props[callbackName](event, info));\n }\n };\n return addPointerEvent(node.current, eventName, handleEvent, {\n passive: !node.getProps()[callbackName],\n });\n}\nclass HoverGesture extends Feature {\n mount() {\n this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { extractEventInfo } from '../events/event-info.mjs';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { noop } from '../utils/noop.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction fireSyntheticPointerEvent(name, handler) {\n if (!handler)\n return;\n const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nclass PressGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removeStartListeners = noop;\n this.removeEndListeners = noop;\n this.removeAccessibleListeners = noop;\n this.startPointerPress = (startEvent, startInfo) => {\n if (this.isPressing)\n return;\n this.removeEndListeners();\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel, globalTapTarget } = this.node.getProps();\n frame.update(() => {\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !globalTapTarget &&\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel && onTapCancel(endEvent, endInfo)\n : onTap && onTap(endEvent, endInfo);\n });\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, { passive: !(props.onTap || props[\"onPointerUp\"]) });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), { passive: !(props.onTapCancel || props[\"onPointerCancel\"]) });\n this.removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n this.startPress(startEvent, startInfo);\n };\n this.startAccessiblePress = () => {\n const handleKeydown = (keydownEvent) => {\n if (keydownEvent.key !== \"Enter\" || this.isPressing)\n return;\n const handleKeyup = (keyupEvent) => {\n if (keyupEvent.key !== \"Enter\" || !this.checkPressEnd())\n return;\n fireSyntheticPointerEvent(\"up\", (event, info) => {\n const { onTap } = this.node.getProps();\n if (onTap) {\n frame.update(() => onTap(event, info));\n }\n });\n };\n this.removeEndListeners();\n this.removeEndListeners = addDomEvent(this.node.current, \"keyup\", handleKeyup);\n fireSyntheticPointerEvent(\"down\", (event, info) => {\n this.startPress(event, info);\n });\n };\n const removeKeydownListener = addDomEvent(this.node.current, \"keydown\", handleKeydown);\n const handleBlur = () => {\n if (!this.isPressing)\n return;\n fireSyntheticPointerEvent(\"cancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo));\n };\n const removeBlurListener = addDomEvent(this.node.current, \"blur\", handleBlur);\n this.removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n };\n }\n startPress(event, info) {\n this.isPressing = true;\n const { onTapStart, whileTap } = this.node.getProps();\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", true);\n }\n if (onTapStart) {\n frame.update(() => onTapStart(event, info));\n }\n }\n checkPressEnd() {\n this.removeEndListeners();\n this.isPressing = false;\n const props = this.node.getProps();\n if (props.whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", false);\n }\n return !isDragActive();\n }\n cancelPress(event, info) {\n if (!this.checkPressEnd())\n return;\n const { onTapCancel } = this.node.getProps();\n if (onTapCancel) {\n frame.update(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(props.globalTapTarget ? window : this.node.current, \"pointerdown\", this.startPointerPress, { passive: !(props.onTapStart || props[\"onPointerStart\"]) });\n const removeFocusListener = addDomEvent(this.node.current, \"focus\", this.startAccessiblePress);\n this.removeStartListeners = pipe(removePointerListener, removeFocusListener);\n }\n unmount() {\n this.removeStartListeners();\n this.removeEndListeners();\n this.removeAccessibleListeners();\n }\n}\n\nexport { PressGesture };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n const current = {};\n visualElement.values.forEach((value, key) => (current[key] = value.get()));\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n const velocity = {};\n visualElement.values.forEach((value, key) => (velocity[key] = value.getVelocity()));\n return velocity;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\nexport { resolveVariant };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","import { isBezierDefinition } from '../../../easing/utils/is-bezier-definition.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean(!easing ||\n (typeof easing === \"string\" && supportedWaapiEasing[easing]) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasing(easing) {\n if (!easing)\n return undefined;\n return isBezierDefinition(easing)\n ? cubicBezierAsString(easing)\n : Array.isArray(easing)\n ? easing.map(mapEasingToNativeEasing)\n : supportedWaapiEasing[easing];\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = cubicBezier(0.42, 0, 1, 1);\nconst easeOut = cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = reverseEasing(backOut);\nconst backInOut = mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { invariant } from '../../utils/errors.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { anticipate } from '../anticipate.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { number, alpha } from '../numbers/index.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: isColorString(\"rgb\", \"red\"),\n parse: splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString(\"hsl\", \"hue\"),\n parse: splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { invariant } from './errors.mjs';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\nimport { hex } from '../value/types/color/hex.mjs';\nimport { rgba } from '../value/types/color/rgba.mjs';\nimport { hsla } from '../value/types/color/hsla.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n return Math.sqrt(Math.max(0, v * (to * to - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n invariant(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mix(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { cssVariableRegex } from '../../../render/dom/utils/is-css-variable.mjs';\nimport { noop } from '../../../utils/noop.mjs';\nimport { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { colorRegex, floatRegex, isString, sanitize } from '../utils.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n isString(v) &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst cssVarTokeniser = {\n regex: cssVariableRegex,\n countKey: \"Vars\",\n token: \"${v}\",\n parse: noop,\n};\nconst colorTokeniser = {\n regex: colorRegex,\n countKey: \"Colors\",\n token: \"${c}\",\n parse: color.parse,\n};\nconst numberTokeniser = {\n regex: floatRegex,\n countKey: \"Numbers\",\n token: \"${n}\",\n parse: number.parse,\n};\nfunction tokenise(info, { regex, countKey, token, parse }) {\n const matches = info.tokenised.match(regex);\n if (!matches)\n return;\n info[\"num\" + countKey] = matches.length;\n info.tokenised = info.tokenised.replace(regex, token);\n info.values.push(...matches.map(parse));\n}\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const info = {\n value: originalValue,\n tokenised: originalValue,\n values: [],\n numVars: 0,\n numColors: 0,\n numNumbers: 0,\n };\n if (info.value.includes(\"var(--\"))\n tokenise(info, cssVarTokeniser);\n tokenise(info, colorTokeniser);\n tokenise(info, numberTokeniser);\n return info;\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { values, numColors, numVars, tokenised } = analyseComplexValue(source);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n if (i < numVars) {\n output = output.replace(cssVarTokeniser.token, v[i]);\n }\n else if (i < numVars + numColors) {\n output = output.replace(colorTokeniser.token, color.transform(v[i]));\n }\n else {\n output = output.replace(numberTokeniser.token, sanitize(v[i]));\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","import { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from './errors.mjs';\nimport { color } from '../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../value/types/complex/index.mjs';\n\nconst mixImmediate = (origin, target) => (p) => `${p > 0 ? target : origin}`;\nfunction getMixer(origin, target) {\n if (typeof origin === \"number\") {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return origin.startsWith(\"var(\")\n ? mixImmediate(origin, target)\n : mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = { ...origin, ...target };\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.numVars === targetStats.numVars &&\n originStats.numColors === targetStats.numColors &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.values, targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","import { invariant } from './errors.mjs';\nimport { color } from '../value/types/color/index.mjs';\nimport { clamp } from './clamp.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === \"number\") {\n return mixNumber;\n }\n else if (typeof v === \"string\") {\n return color.test(v) ? mixColor : mixComplex;\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === \"object\") {\n return mixObject;\n }\n return mixNumber;\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","import { mix } from '../mix.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","import { warning } from '../../../utils/errors.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring({ keyframes, restDelta, restSpeed, ...options }) {\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n restDelta || (restDelta = isGranularScale ? 0.005 : 0.5);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n return {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = initialVelocity;\n if (t !== 0) {\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity = calcGeneratorVelocity(resolveSpring, t, current);\n }\n else {\n currentVelocity = 0;\n }\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n };\n}\n\nexport { spring };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value),\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t > timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => frameData.isProcessing ? frameData.timestamp : performance.now(),\n };\n};\n\nexport { frameloopDriver };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","import { keyframes } from '../../generators/keyframes.mjs';\nimport { spring } from '../../generators/spring/index.mjs';\nimport { inertia } from '../../generators/inertia.mjs';\nimport { frameloopDriver } from './driver-frameloop.mjs';\nimport { interpolate } from '../../../utils/interpolate.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorDuration } from '../../generators/utils/calc-duration.mjs';\nimport { invariant } from '../../../utils/errors.mjs';\n\nconst types = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\n/**\n * Animate a single value on the main thread.\n *\n * This function is written, where functionality overlaps,\n * to be largely spec-compliant with WAAPI to allow fungibility\n * between the two.\n */\nfunction animateValue({ autoplay = true, delay = 0, driver = frameloopDriver, keyframes: keyframes$1, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", onPlay, onStop, onComplete, onUpdate, ...options }) {\n let speed = 1;\n let hasStopped = false;\n let resolveFinishedPromise;\n let currentFinishedPromise;\n /**\n * Resolve the current Promise every time we enter the\n * finished state. This is WAAPI-compatible behaviour.\n */\n const updateFinishedPromise = () => {\n currentFinishedPromise = new Promise((resolve) => {\n resolveFinishedPromise = resolve;\n });\n };\n // Create the first finished promise\n updateFinishedPromise();\n let animationDriver;\n const generatorFactory = types[type] || keyframes;\n /**\n * If this isn't the keyframes generator and we've been provided\n * strings as keyframes, we need to interpolate these.\n */\n let mapNumbersToKeyframes;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);\n }\n mapNumbersToKeyframes = interpolate([0, 100], keyframes$1, {\n clamp: false,\n });\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n let mirroredGenerator;\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -(options.velocity || 0),\n });\n }\n let playState = \"idle\";\n let holdTime = null;\n let startTime = null;\n let cancelTime = null;\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null && repeat) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n let resolvedDuration = Infinity;\n let totalDuration = Infinity;\n if (calculatedDuration !== null) {\n resolvedDuration = calculatedDuration + repeatDelay;\n totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n }\n let currentTime = 0;\n const tick = (timestamp) => {\n if (startTime === null)\n return;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (speed > 0)\n startTime = Math.min(startTime, timestamp);\n if (speed < 0)\n startTime = Math.min(timestamp - totalDuration / speed, startTime);\n if (holdTime !== null) {\n currentTime = holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n currentTime = Math.round(timestamp - startTime) * speed;\n }\n // Rebase on delay\n const timeWithoutDelay = currentTime - delay * (speed >= 0 ? 1 : -1);\n const isInDelayPhase = speed >= 0 ? timeWithoutDelay < 0 : timeWithoutDelay > totalDuration;\n currentTime = Math.max(timeWithoutDelay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (playState === \"finished\" && holdTime === null) {\n currentTime = totalDuration;\n }\n let elapsed = currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes$1[0] }\n : frameGenerator.next(elapsed);\n if (mapNumbersToKeyframes) {\n state.value = mapNumbersToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done = speed >= 0 ? currentTime >= totalDuration : currentTime <= 0;\n }\n const isAnimationFinished = holdTime === null &&\n (playState === \"finished\" || (playState === \"running\" && done));\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n finish();\n }\n return state;\n };\n const stopAnimationDriver = () => {\n animationDriver && animationDriver.stop();\n animationDriver = undefined;\n };\n const cancel = () => {\n playState = \"idle\";\n stopAnimationDriver();\n resolveFinishedPromise();\n updateFinishedPromise();\n startTime = cancelTime = null;\n };\n const finish = () => {\n playState = \"finished\";\n onComplete && onComplete();\n stopAnimationDriver();\n resolveFinishedPromise();\n };\n const play = () => {\n if (hasStopped)\n return;\n if (!animationDriver)\n animationDriver = driver(tick);\n const now = animationDriver.now();\n onPlay && onPlay();\n if (holdTime !== null) {\n startTime = now - holdTime;\n }\n else if (!startTime || playState === \"finished\") {\n startTime = now;\n }\n if (playState === \"finished\") {\n updateFinishedPromise();\n }\n cancelTime = startTime;\n holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n playState = \"running\";\n animationDriver.start();\n };\n if (autoplay) {\n play();\n }\n const controls = {\n then(resolve, reject) {\n return currentFinishedPromise.then(resolve, reject);\n },\n get time() {\n return millisecondsToSeconds(currentTime);\n },\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n currentTime = newTime;\n if (holdTime !== null || !animationDriver || speed === 0) {\n holdTime = newTime;\n }\n else {\n startTime = animationDriver.now() - newTime / speed;\n }\n },\n get duration() {\n const duration = generator.calculatedDuration === null\n ? calcGeneratorDuration(generator)\n : generator.calculatedDuration;\n return millisecondsToSeconds(duration);\n },\n get speed() {\n return speed;\n },\n set speed(newSpeed) {\n if (newSpeed === speed || !animationDriver)\n return;\n speed = newSpeed;\n controls.time = millisecondsToSeconds(currentTime);\n },\n get state() {\n return playState;\n },\n play,\n pause: () => {\n playState = \"paused\";\n holdTime = currentTime;\n },\n stop: () => {\n hasStopped = true;\n if (playState === \"idle\")\n return;\n playState = \"idle\";\n onStop && onStop();\n cancel();\n },\n cancel: () => {\n if (cancelTime !== null)\n tick(cancelTime);\n cancel();\n },\n complete: () => {\n playState = \"finished\";\n },\n sample: (elapsed) => {\n startTime = 0;\n return tick(elapsed);\n },\n };\n return controls;\n}\n\nexport { animateValue };\n","import { animateStyle } from './index.mjs';\nimport { isWaapiSupportedEasing } from './easing.mjs';\nimport { getFinalKeyframe } from './utils/get-final-keyframe.mjs';\nimport { animateValue } from '../js/index.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../../utils/time-conversion.mjs';\nimport { memo } from '../../../utils/memo.mjs';\nimport { noop } from '../../../utils/noop.mjs';\nimport { frame, cancelFrame } from '../../../frameloop/frame.mjs';\n\nconst supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n \"backgroundColor\",\n]);\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\nconst requiresPregeneratedKeyframes = (valueName, options) => options.type === \"spring\" ||\n valueName === \"backgroundColor\" ||\n !isWaapiSupportedEasing(options.ease);\nfunction createAcceleratedAnimation(value, valueName, { onUpdate, onComplete, ...options }) {\n const canAccelerateAnimation = supportsWaapi() &&\n acceleratedValues.has(valueName) &&\n !options.repeatDelay &&\n options.repeatType !== \"mirror\" &&\n options.damping !== 0 &&\n options.type !== \"inertia\";\n if (!canAccelerateAnimation)\n return false;\n /**\n * TODO: Unify with js/index\n */\n let hasStopped = false;\n let resolveFinishedPromise;\n let currentFinishedPromise;\n /**\n * Cancelling an animation will write to the DOM. For safety we want to defer\n * this until the next `update` frame lifecycle. This flag tracks whether we\n * have a pending cancel, if so we shouldn't allow animations to finish.\n */\n let pendingCancel = false;\n /**\n * Resolve the current Promise every time we enter the\n * finished state. This is WAAPI-compatible behaviour.\n */\n const updateFinishedPromise = () => {\n currentFinishedPromise = new Promise((resolve) => {\n resolveFinishedPromise = resolve;\n });\n };\n // Create the first finished promise\n updateFinishedPromise();\n let { keyframes, duration = 300, ease, times } = options;\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(valueName, options)) {\n const sampleAnimation = animateValue({\n ...options,\n repeat: 0,\n delay: 0,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n times = undefined;\n keyframes = pregeneratedKeyframes;\n duration = t - sampleDelta;\n ease = \"linear\";\n }\n const animation = animateStyle(value.owner.current, valueName, keyframes, {\n ...options,\n duration,\n /**\n * This function is currently not called if ease is provided\n * as a function so the cast is safe.\n *\n * However it would be possible for a future refinement to port\n * in easing pregeneration from Motion One for browsers that\n * support the upcoming `linear()` easing function.\n */\n ease: ease,\n times,\n });\n const cancelAnimation = () => {\n pendingCancel = false;\n animation.cancel();\n };\n const safeCancel = () => {\n pendingCancel = true;\n frame.update(cancelAnimation);\n resolveFinishedPromise();\n updateFinishedPromise();\n };\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n if (pendingCancel)\n return;\n value.set(getFinalKeyframe(keyframes, options));\n onComplete && onComplete();\n safeCancel();\n };\n /**\n * Animation interrupt callback.\n */\n const controls = {\n then(resolve, reject) {\n return currentFinishedPromise.then(resolve, reject);\n },\n attachTimeline(timeline) {\n animation.timeline = timeline;\n animation.onfinish = null;\n return noop;\n },\n get time() {\n return millisecondsToSeconds(animation.currentTime || 0);\n },\n set time(newTime) {\n animation.currentTime = secondsToMilliseconds(newTime);\n },\n get speed() {\n return animation.playbackRate;\n },\n set speed(newSpeed) {\n animation.playbackRate = newSpeed;\n },\n get duration() {\n return millisecondsToSeconds(duration);\n },\n play: () => {\n if (hasStopped)\n return;\n animation.play();\n /**\n * Cancel any pending cancel tasks\n */\n cancelFrame(cancelAnimation);\n },\n pause: () => animation.pause(),\n stop: () => {\n hasStopped = true;\n if (animation.playState === \"idle\")\n return;\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n const { currentTime } = animation;\n if (currentTime) {\n const sampleAnimation = animateValue({\n ...options,\n autoplay: false,\n });\n value.setWithVelocity(sampleAnimation.sample(currentTime - sampleDelta).value, sampleAnimation.sample(currentTime).value, sampleDelta);\n }\n safeCancel();\n },\n complete: () => {\n if (pendingCancel)\n return;\n animation.finish();\n },\n cancel: safeCancel,\n };\n return controls;\n}\n\nexport { createAcceleratedAnimation };\n","function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { animateStyle };\n","function getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }) {\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : keyframes.length - 1;\n return keyframes[index];\n}\n\nexport { getFinalKeyframe };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (key, value) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/.test(v);\n\nexport { isZeroValueString };\n","import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n}\n\nexport { isNone };\n","/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n\nexport { getValueTransition, isTransitionDefined };\n","const MotionGlobalConfig = {\n skipAnimations: false,\n};\n\nexport { MotionGlobalConfig };\n","import { warning } from '../../utils/errors.mjs';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { createAcceleratedAnimation } from '../animators/waapi/create-accelerated-animation.mjs';\nimport { createInstantAnimation } from '../animators/instant.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { isAnimatable } from '../utils/is-animatable.mjs';\nimport { getKeyframes } from '../utils/keyframes.mjs';\nimport { getValueTransition, isTransitionDefined } from '../utils/transitions.mjs';\nimport { animateValue } from '../animators/js/index.mjs';\nimport { MotionGlobalConfig } from '../../utils/GlobalConfig.mjs';\n\nconst animateMotionValue = (valueName, value, target, transition = {}) => {\n return (onComplete) => {\n const valueTransition = getValueTransition(transition, valueName) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n const keyframes = getKeyframes(value, valueName, target, valueTransition);\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(valueName, originKeyframe);\n const isTargetAnimatable = isAnimatable(valueName, targetKeyframe);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${valueName} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n let options = {\n keyframes,\n velocity: value.getVelocity(),\n ease: \"easeOut\",\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(valueName, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (!isOriginAnimatable ||\n !isTargetAnimatable ||\n instantAnimationState.current ||\n valueTransition.type === false ||\n MotionGlobalConfig.skipAnimations) {\n /**\n * If we can't animate this value, or the global instant animation flag is set,\n * or this is simply defined as an instant transition, return an instant transition.\n */\n return createInstantAnimation(instantAnimationState.current\n ? { ...options, delay: 0 }\n : options);\n }\n /**\n * Animate via WAAPI if possible.\n */\n if (\n /**\n * If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n !transition.isHandoff &&\n value.owner &&\n value.owner.current instanceof HTMLElement &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !value.owner.getProps().onUpdate) {\n const acceleratedAnimation = createAcceleratedAnimation(value, valueName, options);\n if (acceleratedAnimation)\n return acceleratedAnimation;\n }\n /**\n * If we didn't create an accelerated animation, create a JS animation\n */\n return animateValue(options);\n };\n};\n\nexport { animateMotionValue };\n","import { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { isNone } from './is-none.mjs';\n\nfunction getKeyframes(value, valueName, target, transition) {\n const isTargetAnimatable = isAnimatable(valueName, target);\n let keyframes;\n if (Array.isArray(target)) {\n keyframes = [...target];\n }\n else {\n keyframes = [null, target];\n }\n const defaultOrigin = transition.from !== undefined ? transition.from : value.get();\n let animatableTemplateValue = undefined;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < keyframes.length; i++) {\n /**\n * Fill null/wildcard keyframes\n */\n if (keyframes[i] === null) {\n keyframes[i] = i === 0 ? defaultOrigin : keyframes[i - 1];\n }\n if (isNone(keyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n // TODO: Clean this conditional, it works for now\n if (typeof keyframes[i] === \"string\" &&\n keyframes[i] !== \"none\" &&\n keyframes[i] !== \"0\") {\n animatableTemplateValue = keyframes[i];\n }\n }\n if (isTargetAnimatable &&\n noneKeyframeIndexes.length &&\n animatableTemplateValue) {\n for (let i = 0; i < noneKeyframeIndexes.length; i++) {\n const index = noneKeyframeIndexes[i];\n keyframes[index] = getAnimatableNone(valueName, animatableTemplateValue);\n }\n }\n return keyframes;\n}\n\nexport { getKeyframes };\n","import { animateValue } from './js/index.mjs';\nimport { noop } from '../../utils/noop.mjs';\n\nfunction createInstantAnimation({ keyframes, delay, onUpdate, onComplete, }) {\n const setValue = () => {\n onUpdate && onUpdate(keyframes[keyframes.length - 1]);\n onComplete && onComplete();\n /**\n * TODO: As this API grows it could make sense to always return\n * animateValue. This will be a bigger project as animateValue\n * is frame-locked whereas this function resolves instantly.\n * This is a behavioural change and also has ramifications regarding\n * assumptions within tests.\n */\n return {\n time: 0,\n speed: 1,\n duration: 0,\n play: (noop),\n pause: (noop),\n stop: (noop),\n then: (resolve) => {\n resolve();\n return Promise.resolve();\n },\n cancel: (noop),\n complete: (noop),\n };\n };\n return delay\n ? animateValue({\n keyframes: [0, 1],\n duration: 0,\n delay,\n onComplete: setValue,\n })\n : setValue();\n}\n\nexport { createInstantAnimation };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^\\-?\\d*\\.?\\d+$/.test(v);\n\nexport { isNumericalString };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { frame, frameData } from '../frameloop/frame.mjs';\n\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"10.18.0\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n this.prev = this.current;\n this.current = v;\n // Update timestamp\n const { delta, timestamp } = frameData;\n if (this.lastUpdated !== timestamp) {\n this.timeDelta = delta;\n this.lastUpdated = timestamp;\n frame.postRender(this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (this.prev !== this.current && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update velocity subscribers\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = () => frame.postRender(this.velocityCheck);\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = ({ timestamp }) => {\n if (timestamp !== this.lastUpdated) {\n this.prev = this.current;\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n this.owner = options.owner;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return <motion.div style={{ x }} />\n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = prev;\n this.timeDelta = delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v) {\n this.updateAndNotify(v);\n this.prev = v;\n this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n const reversedLabels = [...variantLabels].reverse();\n reversedLabels.forEach((key) => {\n const variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n if (visualElement.variantChildren) {\n visualElement.variantChildren.forEach((child) => {\n setVariants(child, variantLabels);\n });\n }\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b;\n const newValueKeys = Object.keys(target).filter((key) => !visualElement.hasValue(key));\n const numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (let i = 0; i < numNewValues; i++) {\n const key = newValueKeys[i];\n const targetValue = target[key];\n let value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value, { owner: visualElement }));\n if (origin[key] === undefined) {\n origin[key] = value;\n }\n if (value !== null)\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n const valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n const origin = {};\n for (const key in target) {\n const transitionOrigin = getOriginFromTransition(key, transition);\n if (transitionOrigin !== undefined) {\n origin[key] = transitionOrigin;\n }\n else {\n const value = visualElement.getValue(key);\n if (value) {\n origin[key] = value.get();\n }\n }\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\nimport { optimizedAppearDataAttribute } from '../optimized-appear/data-id.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { getValueTransition } from '../utils/transitions.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction hasKeyframesChanged(value, target) {\n const current = value.get();\n if (Array.isArray(target)) {\n for (let i = 0; i < target.length; i++) {\n if (target[i] !== current)\n return true;\n }\n }\n else {\n return current !== target;\n }\n}\nfunction animateTarget(visualElement, definition, { delay = 0, transitionOverride, type } = {}) {\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = visualElement.makeTargetAnimatable(definition);\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key);\n const valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n elapsed: 0,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n if (window.HandoffAppearAnimations) {\n const appearId = visualElement.getProps()[optimizedAppearDataAttribute];\n if (appearId) {\n const elapsed = window.HandoffAppearAnimations(appearId, key, value, frame);\n if (elapsed !== null) {\n valueTransition.elapsed = elapsed;\n valueTransition.isHandoff = true;\n }\n }\n }\n let canSkip = !valueTransition.isHandoff &&\n !hasKeyframesChanged(value, valueTarget);\n if (valueTransition.type === \"spring\" &&\n (value.getVelocity() || valueTransition.velocity)) {\n canSkip = false;\n }\n /**\n * Temporarily disable skipping animations if there's an animation in\n * progress. Better would be to track the current target of a value\n * and compare that against valueTarget.\n */\n if (value.animation) {\n canSkip = false;\n }\n if (canSkip)\n continue;\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key)\n ? { type: false }\n : valueTransition));\n const animation = value.animation;\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n const resolved = resolveVariant(visualElement, variant, options.custom);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n const state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (acc, definition) => {\n const resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(options, changedActiveType) {\n const props = visualElement.getProps();\n const context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined ? props[type] : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n */\n if (shouldAnimateType && (!isInherited || handledRemovedValues)) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type, ...options },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive, options) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(options, type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => visualElement.notify(\"AnimationComplete\", definition));\n}\n\nexport { animateVisualElement };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete, custom } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent, { custom: custom !== null && custom !== void 0 ? custom : this.node.getProps().custom });\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n this.unmount();\n if (isAnimationControls(animate)) {\n this.unmount = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() { }\n}\n\nexport { AnimationFeature };\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { extractEventInfo } from '../../events/event-info.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { isPrimaryPointer } from '../../events/utils/is-primary-pointer.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n if (this.dragSnapToOrigin)\n resumeAnimation && resumeAnimation();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mix } from '../../utils/mix.mjs';\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target = 0, maxDistance = 0.01) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mix(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))\n delta.scale = 1;\n delta.translate =\n mix(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate) || isNaN(delta.translate))\n delta.translate = 0;\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","import { progress } from '../../../utils/progress.mjs';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mix } from '../../../utils/mix.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic ? mix(min, point, elastic.min) : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic ? mix(max, point, elastic.max) : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { mix } from '../../utils/mix.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const instance = node.instance;\n if (instance &&\n instance.style &&\n instance.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n treeScale.x = snapToDefault(treeScale.x);\n treeScale.y = snapToDefault(treeScale.y);\n}\nfunction snapToDefault(scale) {\n if (Number.isInteger(scale))\n return scale;\n return scale > 1.0000000000001 || scale < 0.999999999999 ? scale : 1;\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, transforms, [key, scaleKey, originKey]) {\n const axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n const originPoint = mix(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform, xKeys);\n transformAxis(box.y, transform, yKeys);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","// Fixes https://github.com/framer/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\nexport { getContextWindow };\n","import { invariant } from '../../utils/errors.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, calcOrigin } from './utils/constraints.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: PointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n const { dragSnapToOrigin } = this.getProps();\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openGlobalLock)\n this.openGlobalLock();\n this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openGlobalLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.update(() => onDragStart(event, info), false, true);\n }\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openGlobalLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n const resumeAnimation = () => eachAxis((axis) => {\n var _a;\n return this.getAnimationState(axis) === \"paused\" &&\n ((_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.play());\n });\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n contextWindow: getContextWindow(this.visualElement),\n });\n }\n stop(event, info) {\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.update(() => onDragEnd(event, info));\n }\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n var _a;\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : (_a = this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n pauseAnimation() {\n eachAxis((axis) => { var _a; return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.pause(); });\n }\n getAnimationState(axis) {\n var _a;\n return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.state;\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = \"_drag\" + axis.toUpperCase();\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial ? props.initial[axis] : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mix(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mix(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints)) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n measureDragConstraints();\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { PanSession } from './PanSession.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n frame.update(() => handler(event, info));\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: getContextWindow(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n frame.update(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mix } from '../../utils/mix.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mix(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n","import React__default, { useContext } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\nimport { frame } from '../../../frameloop/frame.mjs';\n\nclass MeasureLayoutWithContext extends React__default.Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n queueMicrotask(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (React__default.createElement(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { useContext, useId, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","import { circOut } from '../../easing/circ.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mix(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mix(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mix(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mix(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mix(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = compress(0, 0.5, circOut);\nconst easeCrossfadeOut = compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\nexport { copyAxisInto, copyBoxInto };\n","import { mix } from '../../utils/mix.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mix(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mix(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\nfunction boxEqualsRounded(a, b) {\n return (Math.round(a.x.min) === Math.round(b.x.min) &&\n Math.round(a.x.max) === Math.round(b.x.max) &&\n Math.round(a.y.min) === Math.round(b.y.min) &&\n Math.round(a.y.max) === Math.round(b.y.max));\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\n\nexport { aspectRatio, boxEquals, boxEqualsRounded, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n if (xTranslate || yTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, 0) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { rotate, rotateX, rotateY } = latestTransform;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEqualsRounded, isDeltaZero, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { globalProjectionState } from './state.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { record } from '../../debug/record.mjs';\nimport { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { animateSingleValue } from '../../animation/interfaces/single-value.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { cancelFrame, frameData, steps, frame } from '../../frameloop/frame.mjs';\nimport { noop } from '../../utils/noop.mjs';\n\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nconst hiddenVisibility = { visibility: \"hidden\" };\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\n/**\n * Use a mutable data object for debug data so as to not create a new\n * object every frame.\n */\nconst projectionFrameData = {\n type: \"projectionFrame\",\n totalNodes: 0,\n resolvedTargetDeltas: 0,\n recalculatedProjection: 0,\n};\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n projectionFrameData.totalNodes =\n projectionFrameData.resolvedTargetDeltas =\n projectionFrameData.recalculatedProjection =\n 0;\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n record(projectionFrameData);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = this.root.hasTreeAnimated) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (this.options.layoutRoot ||\n (this.resumeFrom && this.resumeFrom.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = performance.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n steps.update.process(frameData);\n steps.preRender.process(frameData);\n steps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n queueMicrotask(() => this.update());\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot: checkIsScrollRoot(this.instance),\n offset: measureScroll(this.instance),\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.isRoot) {\n copyBoxInto(boxWithoutScroll, box);\n const { scroll: rootScroll } = this.root;\n /**\n * Undo the application of page scroll that was originally added\n * to the measured bounding box.\n */\n if (rootScroll) {\n translateAxis(boxWithoutScroll.x, -rootScroll.offset.x);\n translateAxis(boxWithoutScroll.y, -rootScroll.offset.y);\n }\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) ||\n this.attemptToResolveRelativeTarget);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n // TODO If this is unsuccessful this currently happens every frame\n if (!this.targetDelta && !this.relativeTarget) {\n // TODO: This is a semi-repetition of further down this function, make DRY\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n projectionFrameData.resolvedTargetDeltas++;\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n var _a;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.projectionTransform) {\n this.projectionDelta = createDelta();\n this.projectionTransform = \"none\";\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n const prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n projectionFrameData.recalculatedProjection++;\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.scheduleRender && this.options.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot\n ? snapshot.latestValues\n : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation && this.currentAnimation.stop();\n if (this.resumingFrom && this.resumingFrom.currentAnimation) {\n this.resumingFrom.currentAnimation.stop();\n }\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animateSingleValue(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onComplete: () => {\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected rotation values, we can early return without a forced render.\n let hasRotate = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ) {\n hasRotate = true;\n }\n // If there's no rotation values, we don't need to do any more.\n if (!hasRotate)\n return;\n const resetValues = {};\n // Check the rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n const key = \"rotate\" + transformAxes[i];\n // Record the rotation and then temporarily set it to 0\n if (latestValues[key]) {\n resetValues[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n }\n }\n // Force a render of this element to apply the transform with all rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp) {\n var _a, _b;\n if (!this.instance || this.isSVG)\n return undefined;\n if (!this.isVisible) {\n return hiddenVisibility;\n }\n const styles = {\n visibility: \"\",\n };\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = styles.transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n projectionFrameData.totalNodes++;\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetRotation(node) {\n node.resetRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mix(delta.translate, 0, p);\n output.scale = mix(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mix(from.min, to.min, p);\n output.max = mix(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","function record(data) {\n if (window.MotionDebug) {\n window.MotionDebug.record(data);\n }\n}\n\nexport { record };\n","function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n","import { frame, cancelFrame } from '../frameloop/frame.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = performance.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.read(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\n\nexport { delay };\n","import { animateMotionValue } from './motion-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n","import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n","import { invariant } from '../../../utils/errors.mjs';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n else if (isCSSVariableToken(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, { ...target }, transitionEnd) {\n const element = visualElement.current;\n if (!(element instanceof Element))\n return { target, transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = { ...transitionEnd };\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.values.forEach((value) => {\n const current = value.get();\n if (!isCSSVariableToken(current))\n return;\n const resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (const key in target) {\n const current = target[key];\n if (!isCSSVariableToken(current))\n continue;\n const resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n if (!transitionEnd)\n transitionEnd = {};\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd[key] === undefined) {\n transitionEnd[key] = current;\n }\n }\n return { target, transitionEnd };\n}\n\nexport { parseCSSVariable, resolveCSSVariables };\n","import { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.mjs';\nimport { invariant } from '../../../utils/errors.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { findDimensionValueType } from '../value-types/dimensions.mjs';\nimport { isBrowser } from '../../../utils/is-browser.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n \"translateX\",\n \"translateY\",\n]);\nconst isPositionalKey = (key) => positionalKeys.has(key);\nconst hasPositionalKey = (target) => {\n return Object.keys(target).some(isPositionalKey);\n};\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.render();\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\nconst convertChangedValueTypes = (target, visualElement, changedKeys) => {\n const originBbox = visualElement.measureViewportBox();\n const element = visualElement.current;\n const elementComputedStyle = getComputedStyle(element);\n const { display } = elementComputedStyle;\n const origin = {};\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValue(\"display\", target.display || \"block\");\n }\n /**\n * Record origins before we render and update styles\n */\n changedKeys.forEach((key) => {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.render();\n const targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach((key) => {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n const value = visualElement.getValue(key);\n value && value.jump(origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nconst checkAndConvertChangedValueTypes = (visualElement, target, origin = {}, transitionEnd = {}) => {\n target = { ...target };\n transitionEnd = { ...transitionEnd };\n const targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n let removedTransformValues = [];\n let hasAttemptedToRemoveTransformValues = false;\n const changedValueTypeKeys = [];\n targetPositionalKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n let from = origin[key];\n let fromType = findDimensionValueType(from);\n const to = target[key];\n let toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n const numKeyframes = to.length;\n const fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (let i = fromIndex; i < numKeyframes; i++) {\n /**\n * Don't allow wildcard keyframes to be used to detect\n * a difference in value types.\n */\n if (to[i] === null)\n break;\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n const current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues =\n removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n value.jump(to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n const scrollY = changedValueTypeKeys.indexOf(\"height\") >= 0\n ? window.pageYOffset\n : null;\n const convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(([key, value]) => {\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.render();\n // Restore scroll position\n if (isBrowser && scrollY !== null) {\n window.scrollTo({ top: scrollY });\n }\n return { target: convertedTarget, transitionEnd };\n }\n else {\n return { target, transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target, transitionEnd };\n}\n\nexport { positionalValues, unitConversion };\n","import { resolveCSSVariables } from './css-variables-conversion.mjs';\nimport { unitConversion } from './unit-conversion.mjs';\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nconst parseDomVariant = (visualElement, target, origin, transitionEnd) => {\n const resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nexport { parseDomVariant };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","import { warning, invariant } from '../utils/errors.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { isRefObject } from '../utils/is-ref-object.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isWillChangeMotionValue } from '../value/use-will-change/is.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from './utils/is-variant-label.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { variantProps } from './utils/variant-props.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst featureNames = Object.keys(featureDefinitions);\nconst numFeatures = featureNames.length;\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\nconst numVariantProps = variantProps.length;\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n constructor({ parent, props, presenceContext, reducedMotionConfig, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.scheduleRender = () => frame.render(this.render, false, true);\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {});\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n }\n }\n }\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps) {\n return {};\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n this.features[key].unmount();\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate &&\n frame.update(this.notifyUpdate, false, true);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n loadFeatures({ children, ...renderedProps }, isStrict, preloadedFeatures, initialLayoutGroupConfig) {\n let ProjectionNodeConstructor;\n let MeasureLayout;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n renderedProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n for (let i = 0; i < numFeatures; i++) {\n const name = featureNames[i];\n const { isEnabled, Feature: FeatureConstructor, ProjectionNode, MeasureLayout: MeasureLayoutComponent, } = featureDefinitions[name];\n if (ProjectionNode)\n ProjectionNodeConstructor = ProjectionNode;\n if (isEnabled(renderedProps)) {\n if (!this.features[name] && FeatureConstructor) {\n this.features[name] = new FeatureConstructor(this);\n }\n if (MeasureLayoutComponent) {\n MeasureLayout = MeasureLayoutComponent;\n }\n }\n }\n if ((this.type === \"html\" || this.type === \"svg\") &&\n !this.projection &&\n ProjectionNodeConstructor) {\n this.projection = new ProjectionNodeConstructor(this.latestValues, this.parent && this.parent.projection);\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = renderedProps;\n this.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) ||\n (dragConstraints && isRefObject(dragConstraints)),\n visualElement: this,\n scheduleRender: () => this.scheduleRender(),\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig: initialLayoutGroupConfig,\n layoutScroll,\n layoutRoot,\n });\n }\n return MeasureLayout;\n }\n updateFeatures() {\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.options, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Make a target animatable by Popmotion. For instance, if we're\n * trying to animate width from 100px to 100vw we need to measure 100vw\n * in pixels to determine what we really need to animate to. This is also\n * pluggable to support Framer's custom value types like Color,\n * and CSS variables.\n */\n makeTargetAnimatable(target, canMutate = true) {\n return this.makeTargetAnimatableFromInstance(target, this.props, canMutate);\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listener = props[\"on\" + key];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n getVariantContext(startAtParent = false) {\n if (startAtParent) {\n return this.parent ? this.parent.getVariantContext() : undefined;\n }\n if (!this.isControllingVariants) {\n const context = this.parent\n ? this.parent.getVariantContext() || {}\n : {};\n if (this.props.initial !== undefined) {\n context.initial = this.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = this.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n if (value !== this.values.get(key)) {\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n }\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key) {\n var _a;\n return this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n const valueFromInitial = typeof initial === \"string\" || typeof initial === \"object\"\n ? (_a = resolveVariantFromProps(this.props, initial)) === null || _a === void 0 ? void 0 : _a[key]\n : undefined;\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","import { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n const { willChange } = next;\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"10.18.0\", `Attempting to mix Framer Motion versions ${nextValue.version} with 10.18.0 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n if (isWillChangeMotionValue(willChange)) {\n willChange.remove(key);\n }\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n // TODO: Only update values that aren't being animated or even looked at\n !existingValue.hasAnimated && existingValue.set(nextValue);\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';\nimport { parseDomVariant } from './utils/parse-dom-variant.mjs';\nimport { VisualElement } from '../VisualElement.mjs';\n\nclass DOMVisualElement extends VisualElement {\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style ? props.style[key] : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n makeTargetAnimatableFromInstance({ transition, transitionEnd, ...target }, { transformValues }, isMounted) {\n let origin = getOrigin(target, transition || {}, this);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (isMounted) {\n checkTargetForNewValues(this, target, origin);\n const parsed = parseDomVariant(this, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return {\n transition,\n transitionEnd,\n ...target,\n };\n }\n}\n\nexport { DOMVisualElement };\n","import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, options, props) {\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps) {\n return scrapeMotionValuesFromProps(props, prevProps);\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current)\n this.current.textContent = `${latest}`;\n });\n }\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderHTML(instance, renderState, styleProp, projection);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n scrapeMotionValuesFromProps(props, prevProps) {\n return scrapeMotionValuesFromProps(props, prevProps);\n }\n build(renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options, { enableHardwareAcceleration: false })\n : new HTMLVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { createMotionComponent } from '../../motion/index.mjs';\nimport { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { drag } from '../../motion/features/drag.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\nimport { layout } from '../../motion/features/layout.mjs';\n\nconst preloadedFeatures = {\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n};\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nconst motion = /*@__PURE__*/ createMotionProxy((Component, config) => createDomMotionConfig(Component, config, preloadedFeatures, createDomVisualElement));\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, preloadedFeatures, createDomVisualElement));\n}\n\nexport { createDomMotionComponent, motion };\n","import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n","import { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, { forwardMotionProps = false }, preloadedFeatures, createVisualElement) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","const noop = (any) => any;\n\nexport { noop };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import _concat from \"./internal/_concat.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig (((a ...) -> b) ... -> [a] -> *) -> (((a ..., Int, [a]) -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\n_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\nexport default addIndex;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\n_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\n\nexport default append;","import _curry3 from \"./internal/_curry3.js\";\nimport assocPath from \"./assocPath.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> a -> {k: v} -> {k: v}\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\n_curry3(function assoc(prop, val, obj) {\n return assocPath([prop], val, obj);\n});\n\nexport default assoc;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _assoc from \"./internal/_assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n return _assoc(idx, val, obj);\n});\n\nexport default assocPath;","import _forceReduced from \"./_forceReduced.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\n\nexport default _flatCat;","import _curry2 from \"./_curry2.js\";\nimport _flatCat from \"./_flatCat.js\";\nimport map from \"../map.js\";\n\nvar _xchain =\n/*#__PURE__*/\n_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\n\nexport default _xchain;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\nimport _xchain from \"./internal/_xchain.js\";\nimport map from \"./map.js\";\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return _makeFlat(false)(map(fn, monad));\n}));\n\nexport default chain;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n * @symb R.compose(f, g, h)(a)(b) = f(g(h(a)))(b)\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\n_curry2(function max(a, b) {\n return b > a ? b : a;\n});\n\nexport default max;","import _curry2 from \"./internal/_curry2.js\";\nimport _map from \"./internal/_map.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge =\n/*#__PURE__*/\n_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\nexport default converge;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\n_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\n\nexport default curry;","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\n_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\nexport default defaultTo;","import _curry2 from \"./internal/_curry2.js\";\nimport dissocPath from \"./dissocPath.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc =\n/*#__PURE__*/\n_curry2(function dissoc(prop, obj) {\n return dissocPath([prop], obj);\n});\n\nexport default dissoc;","import _curry2 from \"./internal/_curry2.js\";\nimport _dissoc from \"./internal/_dissoc.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\n/**\n * Makes a shallow clone of an object. Note that this copies and flattens\n * prototype properties onto the new object as well. All non-primitive\n * properties are copied by reference.\n *\n * @private\n * @param {String|Integer} prop The prop operating\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original.\n */\n\nfunction _shallowCloneObject(prop, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n return [].concat(obj);\n }\n\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n return result;\n}\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\n\nvar dissocPath =\n/*#__PURE__*/\n_curry2(function dissocPath(path, obj) {\n if (obj == null) {\n return obj;\n }\n\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return _dissoc(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return _shallowCloneObject(head, obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\nexport default dissocPath;","import _isInteger from \"./_isInteger.js\";\nimport _isArray from \"./_isArray.js\";\nimport remove from \"../remove.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @private\n * @param {String|Number} prop The name of the property to dissociate\n * @param {Object|Array} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n */\n\nexport default function _dissoc(prop, obj) {\n if (obj == null) {\n return obj;\n }\n\n if (_isInteger(prop) && _isArray(obj)) {\n return remove(prop, 1, obj);\n }\n\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide =\n/*#__PURE__*/\n_curry2(function divide(a, b) {\n return a / b;\n});\n\nexport default divide;","import _curry1 from \"./internal/_curry1.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _isString from \"./internal/_isString.js\";\nimport _isTypedArray from \"./internal/_isTypedArray.js\";\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`),\n * TypedArray (`Uint8Array []`, `Float32Array []`, etc), and Arguments. Other\n * types are supported if they define `<Type>.empty`,\n * `<Type>.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n * R.empty(Uint8Array.from('123')); //=> Uint8Array []\n */\n\nvar empty =\n/*#__PURE__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : _isTypedArray(x) ? x.constructor.from('') : void 0 // else\n ;\n});\n\nexport default empty;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nexport default equals;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\n_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\nexport default _xfilter;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/filter', 'filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nexport default filter;","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast =\n/*#__PURE__*/\n_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\nexport default _xfindLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLast from \"./internal/_xfindLast.js\";\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\nexport default findLast;","import _curry1 from \"./internal/_curry1.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_makeFlat(true));\n\nexport default flatten;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip =\n/*#__PURE__*/\n_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\nexport default flip;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\n_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!isNil(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\nexport default hasPath;","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nnth(0);\nexport default head;","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Also works with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default includes;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert =\n/*#__PURE__*/\n_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\nexport default insert;","import _includes from \"./_includes.js\";\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\nexport default _Set;","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}","import _isArray from \"./_isArray.js\";\nimport _isInteger from \"./_isInteger.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @private\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original except for the changed property.\n */\n\nexport default function _assoc(prop, val, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[prop] = val;\n return arr;\n }\n\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implementation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer created by [transducerCreator] to return a new transformer\n * (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} transducerCreator transducer factory if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, transducerCreator, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var obj = arguments[arguments.length - 1];\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, Array.prototype.slice.call(arguments, 0, -1));\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = transducerCreator.apply(null, Array.prototype.slice.call(arguments, 0, -1));\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","export default function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","export default function _identity(x) {\n return x;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n * _isArrayLike({nodeType: 1, length: 1}) // => false\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","/**\n * Tests whether or not an object is a typed array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is a typed array, `false` otherwise.\n * @example\n *\n * _isTypedArray(new Uint8Array([])); //=> true\n * _isTypedArray(new Float32Array([])); //=> true\n * _isTypedArray([]); //=> false\n * _isTypedArray(null); //=> false\n * _isTypedArray({}); //=> false\n */\nexport default function _isTypedArray(val) {\n var type = Object.prototype.toString.call(val);\n return type === '[object Uint8ClampedArray]' || type === '[object Int8Array]' || type === '[object Uint8Array]' || type === '[object Int16Array]' || type === '[object Uint16Array]' || type === '[object Int32Array]' || type === '[object Uint32Array]' || type === '[object Float32Array]' || type === '[object Float64Array]' || type === '[object BigInt64Array]' || type === '[object BigUint64Array]';\n}","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf =\n/*#__PURE__*/\n_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\nexport default objOf;","import _objectAssign from \"./_objectAssign.js\";\nimport _identity from \"./_identity.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _isTransformer from \"./_isTransformer.js\";\nimport objOf from \"../objOf.js\";\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\nexport default function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}","import _curry1 from \"./internal/_curry1.js\";\nimport empty from \"./empty.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n * R.isEmpty(Uint8Array.from('')); //=> true\n */\n\nvar isEmpty =\n/*#__PURE__*/\n_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\n\nexport default isEmpty;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry1 from \"./internal/_curry1.js\";\nimport converge from \"./converge.js\";\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt =\n/*#__PURE__*/\n_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\nexport default juxt;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import nth from \"./nth.js\";\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nnth(-1);\nexport default last;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex, R.pluck, R.project\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n * Care must be taken when implementing key generation to avoid key collision,\n * or if tracking references, memory leaks and mutating arguments.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(Number, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith =\n/*#__PURE__*/\n_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\nexport default memoizeWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import filter from \"./filter.js\";\nimport juxt from \"./juxt.js\";\nimport reject from \"./reject.js\";\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition =\n/*#__PURE__*/\njuxt([filter, reject]);\nexport default partition;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n * @symb R.pipe(f, g, h)(a)(b) = h(g(f(a)))(b)\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.project, R.prop, R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\n_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\nexport default pluck;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend =\n/*#__PURE__*/\n_curry2(function prepend(el, list) {\n return _concat([el], list);\n});\n\nexport default prepend;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll =\n/*#__PURE__*/\n_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\nexport default pickAll;","import _map from \"./internal/_map.js\";\nimport identity from \"./identity.js\";\nimport pickAll from \"./pickAll.js\";\nimport useWith from \"./useWith.js\";\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @see R.pluck, R.props, R.prop\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project =\n/*#__PURE__*/\nuseWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\n\nexport default project;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.props, R.pluck, R.project, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n if (obj == null) {\n return;\n }\n\n return _isInteger(p) ? nth(p, obj) : obj[p];\n});\n\nexport default prop;","import _curry3 from \"./internal/_curry3.js\";\nimport prop from \"./prop.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals(val, prop(name, obj));\n});\n\nexport default propEq;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\n_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\nexport default range;","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nexport default reduce;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 !== 0;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\n_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\n\nexport default reject;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\nexport default remove;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\n_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\nexport default replace;","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nexport default tail;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs, R.keys, R.values\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\n_curry1(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\nexport default toPairs;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nexport default type;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nuniqBy(identity);\nexport default uniq;","import _curry2 from \"./_curry2.js\";\nimport _Set from \"./_Set.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XUniqBy =\n/*#__PURE__*/\nfunction () {\n function XUniqBy(f, xf) {\n this.xf = xf;\n this.f = f;\n this.set = new _Set();\n }\n\n XUniqBy.prototype['@@transducer/init'] = _xfBase.init;\n XUniqBy.prototype['@@transducer/result'] = _xfBase.result;\n\n XUniqBy.prototype['@@transducer/step'] = function (result, input) {\n return this.set.add(this.f(input)) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XUniqBy;\n}();\n\nvar _xuniqBy =\n/*#__PURE__*/\n_curry2(function _xuniqBy(f, xf) {\n return new XUniqBy(f, xf);\n});\n\nexport default _xuniqBy;","import _Set from \"./internal/_Set.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xuniqBy from \"./internal/_xuniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xuniqBy, function (fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n}));\n\nexport default uniqBy;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport flip from \"./flip.js\";\nimport reject from \"./reject.js\";\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\n_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\n});\n\nexport default without;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import { createStore } from 'zustand/vanilla';\nexport * from 'zustand/vanilla';\nimport ReactExports from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\n\nconst { useDebugValue } = ReactExports;\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nlet didWarnAboutEqualityFn = false;\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity, equalityFn) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && equalityFn && !didWarnAboutEqualityFn) {\n console.warn(\n \"[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937\"\n );\n didWarnAboutEqualityFn = true;\n }\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getInitialState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && typeof createState !== \"function\") {\n console.warn(\n \"[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.\"\n );\n }\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\nvar react = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`.\"\n );\n }\n return create(createState);\n};\n\nexport { create, react as default, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api)\n return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n console.warn(\n \"[zustand devtools middleware] Please install/enable Redux devtools extension\"\n );\n }\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording)\n return r;\n const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format. \n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools)\n return;\n if (typeof api.dispatch !== \"function\")\n return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState)\n return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0)\n f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst oldImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (e) {\n }\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize({ ...get() });\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then(\n (serializedValue) => storage.setItem(options.name, serializedValue)\n ).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\nconst newImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persistImpl = (config, baseOptions) => {\n if (\"getStorage\" in baseOptions || \"serialize\" in baseOptions || \"deserialize\" in baseOptions) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.\"\n );\n }\n return oldImpl(config, baseOptions);\n }\n return newImpl(config, baseOptions);\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","function shallow$1(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size)\n return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size)\n return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nvar shallow = (objA, objB) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { shallow } from 'zustand/shallow'`.\"\n );\n }\n return shallow$1(objA, objB);\n};\n\nexport { shallow as default, shallow$1 as shallow };\n","import ReactExports from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\nimport { createStore } from 'zustand/vanilla';\n\nconst { useDebugValue } = ReactExports;\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nconst identity = (arg) => arg;\nfunction useStoreWithEqualityFn(api, selector = identity, equalityFn) {\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getInitialState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createWithEqualityFnImpl = (createState, defaultEqualityFn) => {\n const api = createStore(createState);\n const useBoundStoreWithEqualityFn = (selector, equalityFn = defaultEqualityFn) => useStoreWithEqualityFn(api, selector, equalityFn);\n Object.assign(useBoundStoreWithEqualityFn, api);\n return useBoundStoreWithEqualityFn;\n};\nconst createWithEqualityFn = (createState, defaultEqualityFn) => createState ? createWithEqualityFnImpl(createState, defaultEqualityFn) : createWithEqualityFnImpl;\n\nexport { createWithEqualityFn, useStoreWithEqualityFn };\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, getInitialState, subscribe, destroy };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"3421\":\"taskGraphWorker\",\"6530\":\"taskGraphLogWorker\"}[chunkId] || chunkId) + \".\" + {\"19\":\"b81909f0\",\"47\":\"67f1a51f\",\"49\":\"d4c58690\",\"51\":\"bb9db33d\",\"94\":\"ecb6353d\",\"103\":\"1ab962cc\",\"151\":\"f61d8c4d\",\"163\":\"7ec11e14\",\"271\":\"c0d55924\",\"281\":\"78a9d1b1\",\"357\":\"6d7c895a\",\"421\":\"05e8f3ee\",\"445\":\"e7f89e93\",\"484\":\"3eff0983\",\"486\":\"9d2e86bc\",\"493\":\"bbae8a39\",\"529\":\"c2ee3e97\",\"539\":\"9cbc7969\",\"542\":\"f9d6fdd6\",\"593\":\"7d48d615\",\"598\":\"87aa3fc4\",\"673\":\"dc97a5f5\",\"710\":\"68314674\",\"716\":\"72c8443a\",\"744\":\"209d897e\",\"786\":\"cf40ae1a\",\"796\":\"a4a9731d\",\"832\":\"0c244012\",\"848\":\"942ddd7b\",\"935\":\"bb1fe617\",\"984\":\"f223f29f\",\"1003\":\"1b94be12\",\"1015\":\"1c6d0943\",\"1055\":\"0ba23189\",\"1090\":\"a7d5c4ba\",\"1160\":\"9a66fe73\",\"1190\":\"deddd7d5\",\"1216\":\"fa41335c\",\"1230\":\"b94eab80\",\"1266\":\"001c4a46\",\"1315\":\"720bb4ec\",\"1394\":\"e5e3b934\",\"1430\":\"b9b1f54e\",\"1495\":\"9fd302a7\",\"1542\":\"9e5f840c\",\"1573\":\"2246f636\",\"1681\":\"f718939c\",\"1714\":\"2b7b3d1d\",\"1811\":\"1245476e\",\"1833\":\"eb526ea6\",\"1843\":\"0a385ab7\",\"1906\":\"369c9d51\",\"1990\":\"f84f8f1d\",\"2000\":\"17635161\",\"2010\":\"e21e5e78\",\"2020\":\"f85986ba\",\"2030\":\"00938d6a\",\"2085\":\"d89df073\",\"2161\":\"47497d17\",\"2199\":\"dcde8d64\",\"2211\":\"e31fa718\",\"2216\":\"0781f854\",\"2224\":\"a265c6db\",\"2296\":\"ff9efd65\",\"2347\":\"9f20db65\",\"2450\":\"760ce271\",\"2487\":\"de6c53f6\",\"2520\":\"ae399f5a\",\"2538\":\"838d059a\",\"2576\":\"b3c33e61\",\"2592\":\"d9295773\",\"2662\":\"60ee9720\",\"2702\":\"05e40628\",\"2708\":\"dcd2ff75\",\"2737\":\"60c5aa5b\",\"2747\":\"fed4ba12\",\"2774\":\"21eac01f\",\"2843\":\"69780069\",\"2856\":\"bc02d4af\",\"2880\":\"eae733bf\",\"2996\":\"aef8d88b\",\"3029\":\"14b271d5\",\"3061\":\"0058b5fe\",\"3068\":\"a05cef1b\",\"3092\":\"52a91085\",\"3105\":\"ea21c83e\",\"3155\":\"bcaf2821\",\"3160\":\"08072025\",\"3204\":\"a92951be\",\"3216\":\"8d335deb\",\"3340\":\"4ea2d4c6\",\"3380\":\"39bd88fb\",\"3421\":\"781e15a9\",\"3503\":\"9f812064\",\"3512\":\"83b86618\",\"3581\":\"909713c7\",\"3587\":\"222944aa\",\"3603\":\"0a1dda32\",\"3649\":\"550f10c4\",\"3714\":\"731ab0b1\",\"3796\":\"0bd13825\",\"3829\":\"38e61be2\",\"3905\":\"8169f356\",\"3975\":\"a4bd1f51\",\"3988\":\"da709fc8\",\"3993\":\"16418728\",\"4018\":\"83d78fdd\",\"4070\":\"6b7b6a36\",\"4082\":\"dedd723e\",\"4262\":\"730944d5\",\"4293\":\"79fd5bd3\",\"4366\":\"03a4e74a\",\"4375\":\"53a9c92f\",\"4470\":\"40565ba8\",\"4521\":\"7367ab9c\",\"4525\":\"037a5dd8\",\"4548\":\"a8b39d1a\",\"4549\":\"fd3323db\",\"4555\":\"ee06d1a3\",\"4563\":\"774ddc8a\",\"4665\":\"fcd3382e\",\"4727\":\"503b9ae0\",\"4738\":\"54787a8c\",\"4759\":\"b5a3c77d\",\"4761\":\"3f501b9a\",\"4768\":\"a9acc9fa\",\"4774\":\"14d7f1cd\",\"4850\":\"1cd22528\",\"4912\":\"04bddbe3\",\"5023\":\"6144bc2e\",\"5088\":\"a5dcff06\",\"5102\":\"6fa78dcd\",\"5118\":\"a2f14404\",\"5142\":\"0121bf35\",\"5177\":\"fec281a2\",\"5178\":\"be67f7ce\",\"5244\":\"04f1c854\",\"5258\":\"c1a6cb21\",\"5420\":\"fcbe8974\",\"5438\":\"3feda1dd\",\"5451\":\"276b9408\",\"5499\":\"572ecec4\",\"5527\":\"eef67613\",\"5612\":\"5d9f0d7c\",\"5758\":\"81e9cd60\",\"5762\":\"ae1bb3ae\",\"5807\":\"fc136571\",\"5890\":\"38f7c2af\",\"5911\":\"e0d74ee4\",\"5927\":\"6fbe349c\",\"5936\":\"1c7533bc\",\"6023\":\"f5a2387b\",\"6024\":\"5bfb623d\",\"6037\":\"91303faa\",\"6095\":\"712803f7\",\"6131\":\"8cb5724e\",\"6139\":\"0a1d2473\",\"6173\":\"c6793d0c\",\"6213\":\"05234e26\",\"6251\":\"fde86547\",\"6309\":\"4091b255\",\"6337\":\"c270550c\",\"6339\":\"48810171\",\"6388\":\"c48ef43a\",\"6396\":\"7dcf4fc1\",\"6400\":\"1664f1b1\",\"6463\":\"7126fe1d\",\"6503\":\"2d2de6d1\",\"6530\":\"00de3b83\",\"6550\":\"ab64181e\",\"6558\":\"607dfe38\",\"6578\":\"14af4c6c\",\"6630\":\"9589bd34\",\"6640\":\"970bb46a\",\"6761\":\"62531adb\",\"6874\":\"175f4893\",\"6968\":\"37a1277c\",\"7033\":\"4f702485\",\"7064\":\"f2f7d492\",\"7121\":\"24fe6d48\",\"7154\":\"8d047add\",\"7247\":\"0c5b2ebd\",\"7312\":\"4c5e069d\",\"7385\":\"ef32bfdd\",\"7465\":\"1ccb37ee\",\"7529\":\"4d1be4cb\",\"7548\":\"cee31480\",\"7564\":\"32a1ac08\",\"7586\":\"dfab3e2f\",\"7675\":\"a0629087\",\"7687\":\"258b150f\",\"7729\":\"53c45e1c\",\"7733\":\"ac27036d\",\"7844\":\"7f2231ae\",\"7906\":\"646b2280\",\"7969\":\"ec71cd0d\",\"8026\":\"7b2444c8\",\"8039\":\"d9f119d0\",\"8075\":\"ee9db1e1\",\"8086\":\"24e5334c\",\"8098\":\"08a3b2fc\",\"8115\":\"225a8a3d\",\"8131\":\"34834114\",\"8332\":\"81b5d529\",\"8354\":\"3ced862a\",\"8366\":\"e587b8c2\",\"8370\":\"6b34bb98\",\"8401\":\"85ed5a6e\",\"8418\":\"16c793b7\",\"8509\":\"16cfe25e\",\"8522\":\"9fe98523\",\"8526\":\"6cb133b1\",\"8541\":\"3a83d146\",\"8572\":\"ae78159b\",\"8575\":\"ab50d50d\",\"8627\":\"8b704b68\",\"8724\":\"d4854976\",\"8735\":\"bc43f5d4\",\"8743\":\"e21f12f7\",\"8757\":\"db5f55a4\",\"8774\":\"4fa3d3e5\",\"8808\":\"3a6faecd\",\"8859\":\"970afb41\",\"8870\":\"54b87518\",\"9058\":\"9b0e1920\",\"9062\":\"601ca0a6\",\"9148\":\"623ae4bf\",\"9291\":\"0a3cdc17\",\"9361\":\"6c565471\",\"9395\":\"56fd66d4\",\"9410\":\"45c29051\",\"9412\":\"0f5eea0e\",\"9592\":\"4c14a87a\",\"9607\":\"c8065722\",\"9650\":\"9a3a0029\",\"9819\":\"211e0843\",\"9855\":\"17634e7e\",\"9878\":\"8cd4e5bc\",\"9886\":\"54dedf8f\",\"9888\":\"19c6370e\",\"9950\":\"70d8b75b\",\"9983\":\"879faef9\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"19\":\"f6d3cb8f\",\"47\":\"c4fc1929\",\"51\":\"92c310f3\",\"94\":\"6cc5eaa6\",\"103\":\"04454e5f\",\"151\":\"77180c44\",\"163\":\"0aaf792d\",\"271\":\"e9745300\",\"281\":\"b49e8857\",\"357\":\"d376e961\",\"445\":\"6f36561b\",\"484\":\"8a24f28f\",\"529\":\"332cefb3\",\"539\":\"43519325\",\"593\":\"3b2faf3f\",\"598\":\"b80ca19e\",\"673\":\"20acde56\",\"710\":\"8227c533\",\"786\":\"60b831e6\",\"796\":\"b6074e83\",\"832\":\"b3491b6f\",\"935\":\"7da05c23\",\"984\":\"1e19e384\",\"1003\":\"ad945c15\",\"1015\":\"66450512\",\"1055\":\"50f24594\",\"1090\":\"3f8ad45c\",\"1160\":\"8bc984cc\",\"1216\":\"4d5c109c\",\"1266\":\"44cf43f8\",\"1394\":\"521cda7c\",\"1430\":\"22bcf2ae\",\"1542\":\"285c5fbb\",\"1681\":\"d2e7f46d\",\"1714\":\"02c34ba9\",\"1811\":\"be20427b\",\"1833\":\"46487d94\",\"1843\":\"c12cb65b\",\"2000\":\"e067082d\",\"2010\":\"974304f1\",\"2020\":\"21ca5068\",\"2030\":\"a6867471\",\"2161\":\"d5159bde\",\"2211\":\"d31e354d\",\"2216\":\"750493db\",\"2224\":\"fe60b4dc\",\"2296\":\"bba28ced\",\"2347\":\"d645d8cb\",\"2520\":\"0587a742\",\"2576\":\"285c5fbb\",\"2592\":\"62aca2cd\",\"2662\":\"adea1308\",\"2702\":\"c3b9091f\",\"2708\":\"ffa4ffb8\",\"2747\":\"3d0b5b92\",\"2774\":\"f003e4f9\",\"2843\":\"0bb6dbd9\",\"2856\":\"be68de06\",\"2880\":\"6626e1d4\",\"2996\":\"00e82cb3\",\"3029\":\"59035610\",\"3061\":\"a9f42174\",\"3092\":\"f84a8a2e\",\"3105\":\"de34d169\",\"3160\":\"b17e0c57\",\"3216\":\"285c5fbb\",\"3340\":\"ee6f2fb8\",\"3503\":\"1aa0c606\",\"3512\":\"ad945c15\",\"3581\":\"6b6f8bae\",\"3587\":\"ab878efd\",\"3603\":\"b41dcab1\",\"3649\":\"d7c4c2ff\",\"3714\":\"7da05c23\",\"3796\":\"1c019eb6\",\"3975\":\"f3799d1a\",\"3988\":\"36118097\",\"4018\":\"3e7e4fd1\",\"4262\":\"6d7b44ee\",\"4293\":\"07bf6916\",\"4375\":\"fe56a4a5\",\"4521\":\"87e62d18\",\"4548\":\"40f49fd1\",\"4549\":\"f27576a7\",\"4555\":\"dbe174b5\",\"4665\":\"62956cb4\",\"4727\":\"285c5fbb\",\"4738\":\"89ec2f17\",\"4761\":\"be68de06\",\"4768\":\"accf5fb1\",\"4850\":\"1e19e384\",\"4912\":\"8bd09e51\",\"5023\":\"f5e8c830\",\"5088\":\"e3dcd2a8\",\"5102\":\"b791f397\",\"5118\":\"6b6f8bae\",\"5142\":\"87a4f9c7\",\"5177\":\"537b6d07\",\"5178\":\"c903d395\",\"5244\":\"516e2f22\",\"5258\":\"50f01d72\",\"5438\":\"1a98673e\",\"5451\":\"1379ae81\",\"5499\":\"160092ab\",\"5527\":\"ebb03452\",\"5612\":\"e03b1d6d\",\"5758\":\"490233b4\",\"5762\":\"0ea9a26d\",\"5807\":\"e03b1d6d\",\"5890\":\"ecda9571\",\"5927\":\"8d14b308\",\"5936\":\"9a38a2e3\",\"6037\":\"ba410fc2\",\"6095\":\"97e02874\",\"6139\":\"d22a669d\",\"6213\":\"50fb1039\",\"6251\":\"da364240\",\"6309\":\"adea1308\",\"6337\":\"6ace2223\",\"6388\":\"00084e54\",\"6400\":\"775ab993\",\"6463\":\"1f44fca8\",\"6503\":\"c432d4a2\",\"6550\":\"a3e96f8a\",\"6558\":\"537b6d07\",\"6630\":\"285c5fbb\",\"6640\":\"64deb722\",\"6761\":\"d113452f\",\"6874\":\"463f45d9\",\"7033\":\"e020b53d\",\"7064\":\"5ef75a58\",\"7154\":\"ef31b1e4\",\"7312\":\"46555746\",\"7465\":\"69fa9b01\",\"7529\":\"3b5eae40\",\"7548\":\"7d57a98d\",\"7564\":\"332cefb3\",\"7586\":\"ad945c15\",\"7675\":\"ee6f2fb8\",\"7687\":\"6eca7dd1\",\"7729\":\"ad0bf271\",\"7733\":\"3b5eae40\",\"7844\":\"c7fd38ba\",\"7906\":\"cd2d641f\",\"7969\":\"be68de06\",\"8075\":\"2b635826\",\"8131\":\"2a1834a6\",\"8332\":\"285c5fbb\",\"8354\":\"8a24f28f\",\"8366\":\"dbe148e1\",\"8401\":\"66b7b03f\",\"8509\":\"f0905ce8\",\"8522\":\"68523989\",\"8526\":\"be68de06\",\"8541\":\"285c5fbb\",\"8572\":\"7a07c8ad\",\"8575\":\"6587cb6c\",\"8808\":\"34aaaa57\",\"8859\":\"ea0373ba\",\"8870\":\"1fb08878\",\"9058\":\"95d1570e\",\"9062\":\"18fc1b8c\",\"9291\":\"e725a254\",\"9361\":\"505feeac\",\"9410\":\"41e83a65\",\"9592\":\"fe56a4a5\",\"9819\":\"67d977f2\",\"9855\":\"50f24594\",\"9878\":\"6e7cd2b3\",\"9950\":\"c2414c8f\",\"9983\":\"df3ec083\"}[chunkId] + \".chunk.css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"ui:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// 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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"19\":1,\"47\":1,\"51\":1,\"94\":1,\"103\":1,\"151\":1,\"163\":1,\"271\":1,\"281\":1,\"357\":1,\"445\":1,\"484\":1,\"529\":1,\"539\":1,\"593\":1,\"598\":1,\"673\":1,\"710\":1,\"786\":1,\"796\":1,\"832\":1,\"935\":1,\"984\":1,\"1003\":1,\"1015\":1,\"1055\":1,\"1090\":1,\"1160\":1,\"1216\":1,\"1266\":1,\"1394\":1,\"1430\":1,\"1542\":1,\"1681\":1,\"1714\":1,\"1811\":1,\"1833\":1,\"1843\":1,\"2000\":1,\"2010\":1,\"2020\":1,\"2030\":1,\"2161\":1,\"2211\":1,\"2216\":1,\"2224\":1,\"2296\":1,\"2347\":1,\"2520\":1,\"2576\":1,\"2592\":1,\"2662\":1,\"2702\":1,\"2708\":1,\"2747\":1,\"2774\":1,\"2843\":1,\"2856\":1,\"2880\":1,\"2996\":1,\"3029\":1,\"3061\":1,\"3092\":1,\"3105\":1,\"3160\":1,\"3216\":1,\"3340\":1,\"3503\":1,\"3512\":1,\"3581\":1,\"3587\":1,\"3603\":1,\"3649\":1,\"3714\":1,\"3796\":1,\"3975\":1,\"3988\":1,\"4018\":1,\"4262\":1,\"4293\":1,\"4375\":1,\"4521\":1,\"4548\":1,\"4549\":1,\"4555\":1,\"4665\":1,\"4727\":1,\"4738\":1,\"4761\":1,\"4768\":1,\"4850\":1,\"4912\":1,\"5023\":1,\"5088\":1,\"5102\":1,\"5118\":1,\"5142\":1,\"5177\":1,\"5178\":1,\"5244\":1,\"5258\":1,\"5438\":1,\"5451\":1,\"5499\":1,\"5527\":1,\"5612\":1,\"5758\":1,\"5762\":1,\"5807\":1,\"5890\":1,\"5927\":1,\"5936\":1,\"6037\":1,\"6095\":1,\"6139\":1,\"6213\":1,\"6251\":1,\"6309\":1,\"6337\":1,\"6388\":1,\"6400\":1,\"6463\":1,\"6503\":1,\"6550\":1,\"6558\":1,\"6630\":1,\"6640\":1,\"6761\":1,\"6874\":1,\"7033\":1,\"7064\":1,\"7154\":1,\"7312\":1,\"7465\":1,\"7529\":1,\"7548\":1,\"7564\":1,\"7586\":1,\"7675\":1,\"7687\":1,\"7729\":1,\"7733\":1,\"7844\":1,\"7906\":1,\"7969\":1,\"8075\":1,\"8131\":1,\"8332\":1,\"8354\":1,\"8366\":1,\"8401\":1,\"8509\":1,\"8522\":1,\"8526\":1,\"8541\":1,\"8572\":1,\"8575\":1,\"8808\":1,\"8859\":1,\"8870\":1,\"9058\":1,\"9062\":1,\"9291\":1,\"9361\":1,\"9410\":1,\"9592\":1,\"9819\":1,\"9855\":1,\"9878\":1,\"9950\":1,\"9983\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(1003|151|4850|4912|598|6309|6558|9855)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkui\"] = self[\"webpackChunkui\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"7ab079ed29ae5406e1670ffb111a5b820178832a\"};","export const entriesPolyFill: any = (obj: any) =>\n Object.keys(obj).map((key) => [key, obj[key]]);\n\nif (!Object.entries) {\n Object.entries = entriesPolyFill;\n}\n","import { isEmpty } from 'ramda';\n\n/* eslint-disable */\n(function (context) {\n // Internal variables\n var _channels: any = null, // List of channels\n _tabId: any = null, // Current window browser tab identifier (see IE problem, later)\n _prefix = 'polyBC_'; // prefix to identify localStorage keys.\n\n function getRandomString(length: number = 5) {\n var text = '',\n possible =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < (length || 5); i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n /**\n * Gets the current timestamp\n * @private\n */\n function getTimestamp() {\n return new Date().getTime();\n }\n\n /**\n * Build a \"similar\" response as done in the real BroadcastChannel API\n */\n function buildResponse(data: any) {\n return {\n timestamp: getTimestamp(),\n isTrusted: true,\n target: null, // Since we are using JSON stringify, we cannot pass references.\n currentTarget: null,\n data: data,\n bubbles: false,\n cancelable: false,\n defaultPrevented: false,\n lastEventId: '',\n origin: context.location.origin,\n };\n }\n\n /**\n * Creates a new BroadcastChannel\n * @param {String} channelName - the channel name.\n * return {BroadcastChannel}\n */\n function BroadcastChannel(this: any, channelName: string) {\n // Check if localStorage is available.\n if (!context.localStorage) {\n throw new Error('localStorage not available');\n }\n\n // Add custom prefix to Channel Name.\n var _channelId = _prefix + channelName,\n isFirstChannel = _channels === null;\n this.channelId = _channelId;\n\n _tabId = _tabId || getRandomString(); // Creates a new tab identifier, if necessary.\n _channels = _channels || {}; // Initializes channels, if necessary.\n _channels[_channelId] = _channels[_channelId] || [];\n\n // Adds the current Broadcast Channel.\n _channels[_channelId].push(this);\n\n // Creates a sufficiently random name for the current instance of BC.\n this.name = _channelId + '::::' + getRandomString() + getTimestamp();\n\n // If it is the first instance of Channel created, also creates the storage listener.\n if (isFirstChannel) {\n // addEventListener.\n context.addEventListener('storage', _onmsg.bind(this), false);\n }\n\n return this;\n }\n\n /**\n * Empty function to prevent errors when calling onmessage.\n */\n BroadcastChannel.prototype.onmessage = function (ev: any) {};\n\n /**\n * Sends the message to different channels.\n * @param {Object} data - the data to be sent ( actually, it can be any JS type ).\n */\n BroadcastChannel.prototype.postMessage = function (data: any) {\n // Gets all the 'Same tab' channels available.\n if (!_channels) return;\n\n if (this.closed) {\n throw new Error('This BroadcastChannel is closed.');\n return;\n }\n\n // Build the event-like response.\n var msgObj = buildResponse(data);\n\n // SAME-TAB communication.\n var subscribers = _channels[this.channelId] || [];\n for (var j in subscribers) {\n // We don't send the message to ourselves.\n if (subscribers[j].closed || subscribers[j].name === this.name) continue;\n\n if (subscribers[j].onmessage) {\n subscribers[j].onmessage(msgObj);\n }\n }\n\n // CROSS-TAB communication.\n // Adds some properties to communicate among the tabs.\n var editedObj = {\n channelId: this.channelId,\n bcId: this.name,\n tabId: _tabId,\n message: msgObj,\n };\n try {\n var editedJSON = JSON.stringify(editedObj),\n lsKey = 'eomBCmessage_' + getRandomString() + '_' + this.channelId;\n // Set localStorage item (and, after that, removes it).\n context.localStorage.setItem(lsKey, editedJSON);\n } catch (ex) {\n throw new Error('Message conversion has resulted in an error.');\n }\n\n setTimeout(function () {\n context.localStorage.removeItem(lsKey);\n }, 1000);\n };\n\n /**\n * Handler of the 'storage' function.\n * Called when another window has sent a message.\n * @param {Object} ev - the message.\n * @private\n */\n function _onmsg(ev: any) {\n var key = ev.key,\n newValue = ev.newValue,\n isRemoved = !newValue,\n obj = null;\n\n // Actually checks if the messages if from us.\n if (key.indexOf('eomBCmessage_') > -1 && !isRemoved) {\n try {\n obj = JSON.parse(newValue);\n } catch (ex) {\n throw new Error('Message conversion has resulted in an error.');\n }\n\n // NOTE: Check on tab is done to prevent IE error\n // (localStorage event is called even in the same tab :( )\n\n if (\n obj.tabId !== _tabId &&\n obj.channelId &&\n _channels &&\n _channels[obj.channelId]\n ) {\n var subscribers = _channels[obj.channelId];\n for (var j in subscribers) {\n if (!subscribers[j].closed && subscribers[j].onmessage) {\n subscribers[j].onmessage(obj.message);\n }\n }\n // Remove the item for safety.\n context.localStorage.removeItem(key);\n }\n }\n }\n\n /**\n * Closes a Broadcast channel.\n */\n\n BroadcastChannel.prototype.close = function () {\n this.closed = true;\n\n var index = _channels[this.channelId].indexOf(this);\n if (index > -1) _channels[this.channelId].splice(index, 1);\n\n // If we have no channels, remove the listener.\n if (!_channels[this.channelId].length) {\n delete _channels[this.channelId];\n }\n if (isEmpty(_channels)) {\n context.removeEventListener('storage', _onmsg.bind(this));\n }\n };\n\n // Sets BroadcastChannel, if not available.\n context.BroadcastChannel = context.BroadcastChannel || BroadcastChannel;\n\n //})( window.top );\n})(self);\n","export {};\n\ndeclare global {\n interface Array<T> {\n findLastIndex(\n predicate: (value: T, index: number, obj: T[]) => unknown,\n thisArg?: any\n ): number;\n }\n}\n\nif (!Array.prototype.findLastIndex) {\n // eslint-disable-next-line no-extend-native\n Array.prototype.findLastIndex = function (\n callback: (value: any, index: number, array: any[]) => unknown,\n thisArg: any\n ) {\n for (let i = this.length - 1; i >= 0; i--) {\n if (callback.call(thisArg, this[i], i, this)) {\n return i;\n }\n }\n return -1;\n };\n}\n","/* eslint-disable */\n/*\n * Instantiates google analytics and hotjar (only in production)\n */\n\nconst { REACT_APP_TILEDB_ENV } = process.env;\n\nfunction setupAnalytics() {\n /**\n * Do nothing in non-production environments\n */\n if (REACT_APP_TILEDB_ENV !== 'production') {\n return;\n }\n\n const { HOTJAR_ID, GOOGLE_ANALYTICS_ID } = global; // from window object\n\n if (HOTJAR_ID) {\n // Setup Hotjar\n (function(h, o, t, j, a, r) {\n h.hj =\n h.hj ||\n function() {\n (h.hj.q = h.hj.q || []).push(arguments);\n };\n h._hjSettings = { hjid: HOTJAR_ID, hjsv: 6 };\n a = o.getElementsByTagName('head')[0];\n r = o.createElement('script');\n r.async = 1;\n r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;\n a.appendChild(r);\n })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');\n }\n\n if (GOOGLE_ANALYTICS_ID) {\n // Google analytics integration\n (function() {\n window.dataLayer = window.dataLayer || [];\n function gtag() {\n window.dataLayer.push(arguments);\n }\n gtag('js', new Date());\n\n gtag('config', GOOGLE_ANALYTICS_ID, {\n send_page_view: true\n });\n window.gtag = gtag;\n })();\n }\n}\n\nexport default setupAnalytics;\n","import React, { useEffect } from 'react';\nimport './Cookies.scss';\nimport Button from 'components/v2/Button';\nimport useLocalStorage from 'hooks/useLocalStorage';\nimport setupAnalytics from './setupAnalytics';\n\nexport const COOKIES_APPROVAL = 'COOKIES_APPROVAL';\n\nexport const Cookies: React.FC = () => {\n const [preference, setPreference] = useLocalStorage(COOKIES_APPROVAL);\n\n function setCookies(value: boolean): void {\n setPreference(value);\n }\n\n useEffect(() => {\n if (preference === undefined) {\n return;\n }\n if (preference) {\n /**\n * enable analytics\n */\n setupAnalytics();\n }\n }, [preference]);\n\n /**\n * Don't show dialog if preference in localstorage\n */\n if (preference !== undefined) {\n return null;\n }\n\n return (\n <div\n className=\"TDB-Cookies\"\n data-testid=\"TDB-Cookies\"\n role=\"dialog\"\n aria-labelledby=\"TDB-Cookies__text\"\n >\n <div\n id=\"TDB-Cookies__text\"\n className=\"TDB-Cookies__text font-size-h1 mb-3 align-center\"\n >\n We are using cookies to give you the best experience on our website.\n </div>\n <div className=\"TDB-Cookies__buttons d-flex align-center\">\n <Button\n size=\"large\"\n onClick={(): void => setCookies(true)}\n variant=\"primary\"\n className=\"mr-3\"\n ariaLabel=\"Accept cookies\"\n >\n Accept\n </Button>\n <Button\n size=\"large\"\n variant=\"outlined\"\n onClick={(): void => setCookies(false)}\n ariaLabel=\"Decline cookies\"\n >\n Decline\n </Button>\n </div>\n </div>\n );\n};\n\nexport default Cookies;\n","import Cookies from './Cookies';\n\nexport default Cookies;\n","import React, { Suspense } from 'react';\nimport { Switch, Route, Redirect } from 'react-router-dom';\nimport NotFound from 'pages/NotFound';\nimport { authRouterPaths } from 'utils/routerPaths';\nimport { authLinks, overviewLinks } from 'utils/links';\nimport useSessionStorage from 'hooks/useSessionStorage';\nimport sessionStorageKeys from 'utils/constants/sessionStorageKeys';\nimport { useUserContext } from 'store/UserContext';\nimport lazyLoadComponent from 'utils/helpers/lazyLoadComponent';\n\nconst Login = lazyLoadComponent(() => import('./Login'));\nconst Signup = lazyLoadComponent(() => import('./Signup'));\nconst EmailNotConfirmed = lazyLoadComponent(\n () => import('./EmailNotConfirmed')\n);\nconst ForgotPassword = lazyLoadComponent(() => import('./ForgotPassword'));\nconst ResetPassword = lazyLoadComponent(() => import('./ResetPassword'));\nconst CompanySSO = lazyLoadComponent(() => import('./CompanySSO'));\nconst SSO = lazyLoadComponent(() => import('./SSO'));\nconst ConfirmEmail = lazyLoadComponent(() => import('./ConfirmEmail'));\n\nfunction Auth(): JSX.Element {\n const { isLoggedIn } = useUserContext();\n const [redirectToAfterLogin] = useSessionStorage(\n sessionStorageKeys.REDIRECT_TO_AFTER_LOGIN\n );\n const redirectUrl = redirectToAfterLogin || overviewLinks.root();\n\n return (\n <>\n {isLoggedIn && <Redirect to={redirectUrl} />}\n <Suspense fallback={null}>\n <Switch>\n <Redirect exact from={authRouterPaths.root} to={authLinks.login()} />\n <Route path={authRouterPaths.login} component={Login} />\n <Route path={authRouterPaths.signup} component={Signup} />\n <Route\n path={authRouterPaths.emailNotConfirmed}\n component={EmailNotConfirmed}\n />\n <Route path={authRouterPaths.confirmEmail} component={ConfirmEmail} />\n <Route\n path={authRouterPaths.forgotPassword}\n component={ForgotPassword}\n />\n <Route path={authRouterPaths.companySSO} component={CompanySSO} />\n <Route path={authRouterPaths.ssoProvider} component={SSO} />\n <Route\n path={authRouterPaths.resetPassword}\n component={ResetPassword}\n />\n <Route component={NotFound} />\n </Switch>\n </Suspense>\n </>\n );\n}\n\nexport default Auth;\n","import Auth from './Auth';\n\nexport default Auth;\n","import * as React from 'react';\n\nconst useLatest = current => {\n const storedValue = React.useRef(current);\n React.useEffect(() => {\n storedValue.current = current;\n });\n return storedValue;\n};\n\nexport default useLatest;","import * as React from 'react';\nimport useLatest from '@react-hook/latest';\nconst perf = typeof performance !== 'undefined' ? performance : Date;\n\nconst now = () => perf.now();\n\nexport function useThrottleCallback(callback, fps = 30, leading = false) {\n const storedCallback = useLatest(callback);\n const ms = 1000 / fps;\n const prev = React.useRef(0);\n const trailingTimeout = React.useRef();\n\n const clearTrailing = () => trailingTimeout.current && clearTimeout(trailingTimeout.current);\n\n const deps = [fps, leading, storedCallback]; // Reset any time the deps change\n\n function _ref() {\n prev.current = 0;\n clearTrailing();\n }\n\n React.useEffect(() => _ref, deps);\n return React.useCallback(function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const rightNow = now();\n\n const call = () => {\n prev.current = rightNow;\n clearTrailing();\n storedCallback.current.apply(null, args);\n };\n\n const current = prev.current; // leading\n\n if (leading && current === 0) return call(); // body\n\n if (rightNow - current > ms) {\n if (current > 0) return call();\n prev.current = rightNow;\n } // trailing\n\n\n clearTrailing();\n trailingTimeout.current = setTimeout(() => {\n call();\n prev.current = 0;\n }, ms);\n }, deps);\n}\nexport function useThrottle(initialState, fps, leading) {\n const state = React.useState(initialState);\n return [state[0], useThrottleCallback(state[1], fps, leading)];\n}","import * as React from 'react';\n\nfunction useEvent(target, type, listener, cleanup) {\n const storedListener = React.useRef(listener);\n const storedCleanup = React.useRef(cleanup);\n React.useEffect(() => {\n storedListener.current = listener;\n storedCleanup.current = cleanup;\n });\n React.useEffect(() => {\n const targetEl = target && 'current' in target ? target.current : target;\n if (!targetEl) return;\n let didUnsubscribe = 0;\n\n function listener(...args) {\n if (didUnsubscribe) return;\n storedListener.current.apply(this, args);\n }\n\n targetEl.addEventListener(type, listener);\n const cleanup = storedCleanup.current;\n return () => {\n didUnsubscribe = 1;\n targetEl.removeEventListener(type, listener);\n cleanup && cleanup();\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [target, type]);\n}\n\nexport default useEvent;","import { useThrottle } from '@react-hook/throttle';\nimport useEvent from '@react-hook/event';\nconst win = typeof window === 'undefined' ? null : window;\n\nconst getScrollY = () => win.scrollY !== void 0 ? win.scrollY : win.pageYOffset === void 0 ? 0 : win.pageYOffset;\n\nexport const useWindowScroll = (fps = 30) => {\n const state = useThrottle(typeof window === 'undefined' ? 0 : getScrollY, fps, true);\n useEvent(win, 'scroll', () => state[1](getScrollY()));\n return state[0];\n};\nexport default useWindowScroll;","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M43.4577 40H5.20888C4.62359 39.9988 4.06269 39.7654 3.64926 39.3511C3.23583 38.9368 3.00364 38.3754 3.00364 37.7901C3.00364 37.2049 3.23583 36.6435 3.64926 36.2292C4.06269 35.8149 4.62359 35.5815 5.20888 35.5803H43.4577C44.043 35.5815 44.6039 35.8149 45.0174 36.2292C45.4308 36.6435 45.663 37.2049 45.663 37.7901C45.663 38.3754 45.4308 38.9368 45.0174 39.3511C44.6039 39.7654 44.043 39.9988 43.4577 40ZM43.4577 26.2227H5.20888C4.62279 26.2227 4.0607 25.9898 3.64627 25.5754C3.23185 25.161 2.99902 24.5989 2.99902 24.0128C2.99902 23.4267 3.23185 22.8646 3.64627 22.4502C4.0607 22.0358 4.62279 21.8029 5.20888 21.8029H43.4577C44.0438 21.8029 44.6059 22.0358 45.0203 22.4502C45.4348 22.8646 45.6676 23.4267 45.6676 24.0128C45.6676 24.5989 45.4348 25.161 45.0203 25.5754C44.6059 25.9898 44.0438 26.2227 43.4577 26.2227ZM43.4577 12.4197H5.20888C4.62359 12.4185 4.06269 12.1851 3.64926 11.7708C3.23583 11.3565 3.00364 10.7951 3.00364 10.2099C3.00364 9.62457 3.23583 9.06318 3.64926 8.64889C4.06269 8.23459 4.62359 8.00123 5.20888 8H43.4577C44.043 8.00123 44.6039 8.23459 45.0174 8.64889C45.4308 9.06318 45.663 9.62457 45.663 10.2099C45.663 10.7951 45.4308 11.3565 45.0174 11.7708C44.6039 12.1851 44.043 12.4185 43.4577 12.4197Z\" />,\n 'burger-menu'\n);\n","import React from 'react';\nimport { useUserContext } from 'store/UserContext';\n\ninterface Props extends React.PropsWithChildren {\n /**\n * Pass true to render children when not logged-in\n */\n inverse?: boolean;\n}\n\n/**\n * Renders children only if user is logged in\n */\nconst AuthRender: React.FC<Props> = (props) => {\n const { children, inverse } = props;\n const { isLoggedIn } = useUserContext();\n\n if (inverse) {\n /**\n * Renders children only when not logged in\n */\n return isLoggedIn ? null : (children as React.ReactElement);\n }\n\n return isLoggedIn ? (children as React.ReactElement) : null;\n};\n\nexport default AuthRender;\n","import AuthRender from './AuthRender';\n\nexport default AuthRender;\nexport * from './AuthRender';\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M9.1091 36.2057H38.973C39.9984 36.2057 40.8078 35.9378 41.4012 35.402C41.9945 34.8663 42.2912 34.1663 42.2912 33.3022C42.2912 32.6167 42.1213 31.9715 41.7814 31.3666C41.4415 30.756 41.0094 30.1684 40.4852 29.6038C39.9552 29.0392 39.4051 28.4977 38.8347 27.9793C38.3739 27.553 38.0196 26.9913 37.7719 26.2942C37.5242 25.5914 37.3341 24.8079 37.2016 23.9438C37.0691 23.074 36.9481 22.1868 36.8386 21.2823C36.7119 19.099 36.3806 17.1403 35.8449 15.4064C35.3034 13.6666 34.5286 12.1947 33.5204 10.9907C32.5065 9.78671 31.2161 8.89955 29.6492 8.32923C29.2517 7.09066 28.5517 6.05948 27.5494 5.23569C26.5412 4.4119 25.3531 4 23.9849 4C22.6196 4 21.4386 4.40902 20.442 5.22705C19.4454 6.04508 18.7426 7.07338 18.3336 8.31195C16.7724 8.87651 15.4848 9.76079 14.471 10.9648C13.4513 12.163 12.6765 13.632 12.1465 15.3718C11.6107 17.1058 11.2737 19.0616 11.1355 21.2391C11.0318 22.1378 10.9137 23.0221 10.7812 23.892C10.6429 24.7561 10.4528 25.5367 10.2109 26.2337C9.9689 26.9308 9.61173 27.4896 9.13935 27.9101C8.58055 28.4286 8.03904 28.9672 7.51481 29.526C6.98481 30.0848 6.55276 30.6695 6.21863 31.2802C5.87874 31.8851 5.7088 32.5274 5.7088 33.2072C5.7088 34.0713 6.00548 34.7683 6.59884 35.2983C7.1922 35.8283 7.99583 36.0933 9.00973 36.0933L9.1091 36.2057ZM24.0324 44C25.1673 44 26.1841 43.7609 27.0827 43.2828C27.9757 42.8046 28.69 42.1709 29.2258 41.3817C29.7557 40.5925 30.0639 39.7341 30.1504 38.8067H17.9145C17.9836 39.7341 18.2918 40.5896 18.8391 41.3731C19.3806 42.1565 20.0978 42.7874 20.9907 43.2655C21.8779 43.7379 22.886 43.9741 24.0151 43.9741L24.0324 44Z\" />,\n 'bell-filled'\n);\n","import { useQueryRequest, UseRequestType } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\nimport { AxiosResponse } from 'axios';\nimport queryString from 'query-string';\nimport {\n NotificationsApi_getNotificationsCount,\n NotificationsApi_getNotificationsCount$Params,\n NotificationsApi_getNotificationsCount$Path,\n NotificationsApi_getNotificationsCount$Response,\n} from 'api-client';\n\nexport const queryKey = 'notification-count';\n\nexport const createPath = (\n queryData: NotificationsApi_getNotificationsCount$Params\n): string => {\n const query = {\n namespace: queryData.namespace,\n status: queryData.status,\n };\n\n return queryString.stringifyUrl({\n url: NotificationsApi_getNotificationsCount$Path,\n query,\n });\n};\n\nconst useGetNotificationCount: UseRequestType<\n NotificationsApi_getNotificationsCount$Params,\n NotificationsApi_getNotificationsCount$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<NotificationsApi_getNotificationsCount$Response>\n >(\n [queryKey, queryData, 'notifications'],\n useQueryRequest(NotificationsApi_getNotificationsCount, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetNotificationCount;\n","import useGetNotificationCount from './useGetNotificationCount';\n\nexport default useGetNotificationCount;\nexport * from './useGetNotificationCount';\n","import { useQueryRequest, UseRequestType } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\nimport { AxiosResponse } from 'axios';\nimport queryString from 'query-string';\nimport {\n NotificationsApi_listNotifications,\n NotificationsApi_listNotifications$Params,\n NotificationsApi_listNotifications$Path,\n NotificationsApi_listNotifications$Response,\n} from 'api-client';\n\nexport const queryKey = 'list-notifications';\n\nexport const createPath = (\n queryData: NotificationsApi_listNotifications$Params\n): string => {\n const query = {\n page: queryData.page as any,\n per_page: queryData.perPage as any,\n };\n\n return queryString.stringifyUrl({\n url: NotificationsApi_listNotifications$Path,\n query,\n });\n};\n\nconst useGetNotifications: UseRequestType<\n NotificationsApi_listNotifications$Params,\n NotificationsApi_listNotifications$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<NotificationsApi_listNotifications$Response>\n >(\n [queryKey, queryData],\n useQueryRequest(NotificationsApi_listNotifications, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetNotifications;\n","import { create } from 'zustand';\nimport { NotificationStatus } from 'api-client';\nimport useGetNotificationCount from 'hooks/api/Notifications/useGetNotificationCount';\nimport { queryKey as listNotificationsQueryKey } from 'hooks/api/Notifications/useGetNotifications';\nimport { useEffect } from 'react';\nimport { useUserContext } from 'store/UserContext';\nimport useUserPreferencesStore from 'store/UserPreferencesStore';\nimport { isNumber } from 'utils/helpers/number';\nimport queryClient from 'utils/helpers/queryClient';\n\ninterface InboxStore {\n unreadCount: number | undefined;\n setUnreadCount: (count: number) => void;\n}\n\nconst useStore = create<InboxStore>((set) => ({\n unreadCount: undefined,\n setUnreadCount: (count: number) => {\n return set((state: InboxStore) => ({\n unreadCount: count,\n }));\n },\n}));\n\nexport const useInboxPolling = () => {\n const { isLoggedIn, user } = useUserContext();\n const notificationsSnoozed = useUserPreferencesStore(\n (state) => state.notificationsSnoozed\n );\n const unreadCount = useStore((state) => state.unreadCount);\n const setUnreadCount = useStore((state) => state.setUnreadCount);\n const shouldDoPolling =\n isLoggedIn && // non-logged in users have no notifications\n !notificationsSnoozed && // notifications may be snoozed by the user\n !process.env.REACT_APP_DISABLE_NOTIFICATION_POLLING; // for local development\n const [, unreadCountResponse] = useGetNotificationCount(\n {\n namespace: user.id,\n status: NotificationStatus.Unread,\n },\n {},\n {\n enabled: isLoggedIn,\n refetchInterval: shouldDoPolling ? 10_000 : false,\n }\n );\n\n // update count on response\n useEffect(() => {\n const newUnreadCount = unreadCountResponse?.data;\n if (isNumber(unreadCountResponse?.data)) {\n setUnreadCount(newUnreadCount as number);\n\n // invalidate list notification queries if new notification is available\n if (unreadCount !== newUnreadCount) {\n queryClient.invalidateQueries([listNotificationsQueryKey]);\n }\n }\n }, [unreadCount, setUnreadCount, unreadCountResponse?.data]);\n\n return null;\n};\n\nexport default useStore;\n","import InboxStore from './InboxStore';\n\nexport * from './InboxStore';\nexport default InboxStore;\n","import { MutateResponse, useMutateRequest } from 'hooks/useRequest';\nimport { useMutation } from '@tanstack/react-query';\nimport {\n NotificationsApi_markAllNotificationsAsRead,\n NotificationsApi_markAllNotificationsAsRead$Params,\n NotificationsApi_markAllNotificationsAsRead$Response,\n} from 'api-client';\nimport queryClient from 'utils/helpers/queryClient';\nimport { queryKey as countQueryKey } from '../useGetNotificationCount';\nimport { queryKey as listQueryKey } from '../useGetNotifications';\n\nconst keysToInvalidate = [countQueryKey, listQueryKey];\n\nconst useMarkAllNotificationsAsRead = (): MutateResponse<\n NotificationsApi_markAllNotificationsAsRead$Params,\n NotificationsApi_markAllNotificationsAsRead$Response\n> => {\n const { mutateAsync, isLoading, error, data } = useMutation(\n NotificationsApi_markAllNotificationsAsRead,\n {\n // invalidate notification queries\n onSuccess: () => {\n queryClient.invalidateQueries({\n predicate: (query) =>\n keysToInvalidate.includes(query.queryKey[0] as string),\n });\n },\n }\n );\n\n return [\n useMutateRequest(mutateAsync),\n data,\n error as null | Error,\n isLoading,\n ];\n};\n\nexport default useMarkAllNotificationsAsRead;\n","import useMarkAllNotificationsAsRead from './useMarkAllNotificationsAsRead';\n\nexport default useMarkAllNotificationsAsRead;\nexport * from './useMarkAllNotificationsAsRead';\n","import React, { ReactNode } from 'react';\nimport { AssetType, InvitationType, Notification } from 'api-client';\nimport getAssetTypeName from 'utils/helpers/getAssetTypeName';\n\nconst getDescriptionForInvitation = (notification: Notification): ReactNode => {\n switch (notification.notification_event?.invitation?.invitation_type) {\n case InvitationType.JOINORGANIZATION:\n return (\n <>\n You have been invited to join{' '}\n <strong>\n {notification.notification_event.invitation.organization?.name}\n </strong>\n .\n </>\n );\n case InvitationType.ARRAYSHARE:\n return (\n <>\n <strong>\n {notification?.notification_event?.invitation?.invited_by\n ?.namespace || 'someone'}\n </strong>{' '}\n shared the{' '}\n {getAssetTypeName(\n notification?.notification_event?.invitation?.asset\n ?.asset_type as AssetType\n )}{' '}\n named{' '}\n <strong>\n {notification?.notification_event?.invitation?.asset?.namespace}/\n {notification?.notification_event?.invitation?.asset?.name}\n </strong>{' '}\n with{' '}\n {notification?.notification_event.invitation.namespace_invited ? (\n <strong>\n {\n notification?.notification_event.invitation.namespace_invited\n .namespace\n }\n </strong>\n ) : (\n 'you'\n )}\n .\n </>\n );\n case InvitationType.GROUPSHARE:\n return (\n <>\n <strong>\n {notification?.notification_event?.invitation?.invited_by\n ?.namespace || 'someone'}\n </strong>{' '}\n shared the{' '}\n {getAssetTypeName(\n notification?.notification_event?.invitation?.asset\n ?.asset_type as AssetType\n )}{' '}\n named{' '}\n <strong>\n {notification?.notification_event?.invitation?.asset?.namespace}/\n {notification?.notification_event?.invitation?.asset?.name}\n </strong>{' '}\n with{' '}\n {notification?.notification_event.invitation.namespace_invited ? (\n <strong>\n {\n notification?.notification_event.invitation.namespace_invited\n .namespace\n }\n </strong>\n ) : (\n 'you'\n )}\n .\n </>\n );\n default:\n return '';\n }\n};\n\nexport default getDescriptionForInvitation;\n","import React, { ReactNode } from 'react';\nimport { Notification, TaskGraphEventType } from 'api-client';\n\nconst getDescriptionForTaskgraph = (notification: Notification): ReactNode => {\n const taskgraphName = notification.notification_event?.taskgraph?.name;\n switch (notification.notification_event?.taskgraph?.task_graph_event_type) {\n case TaskGraphEventType.Failed:\n return (\n <>\n Taskgraph <strong>{taskgraphName}</strong> has failed.\n </>\n );\n case TaskGraphEventType.Cancelled:\n return (\n <>\n Taskgraph <strong>{taskgraphName}</strong> was cancelled.\n </>\n );\n case TaskGraphEventType.Succeeded:\n return (\n <>\n Taskgraph <strong>{taskgraphName}</strong> has finished successfully.\n </>\n );\n\n default:\n return '';\n }\n};\n\nexport default getDescriptionForTaskgraph;\n","import getNotificationDescription from './getNotificationDescription';\n\nexport default getNotificationDescription;\n","import { ReactNode } from 'react';\nimport { Notification, NotificationType } from 'api-client';\nimport getDescriptionForInvitation from './getDescriptionForInvitation';\nimport getDescriptionForTaskgraph from './getDescriptionForTaskgraph';\n\nconst getNotificationDescription = (\n notification: Notification\n): ReactNode | never => {\n switch (notification.type) {\n case NotificationType.Invitation:\n return getDescriptionForInvitation(notification);\n case NotificationType.Taskgraph:\n return getDescriptionForTaskgraph(notification);\n default:\n return '';\n }\n};\n\nexport default getNotificationDescription;\n","import React from 'react';\nimport {\n AssetType,\n InvitationType,\n Notification,\n NotificationType,\n} from 'api-client';\nimport AssetTypeIcon from 'components/AssetTypeIcon';\nimport IconMembers from 'components/Svg/icons/IconMembers';\n\nconst getIconFromNotificationType = (notification: Notification): any => {\n if (notification.type === NotificationType.Invitation) {\n switch (notification.notification_event.invitation?.invitation_type) {\n case InvitationType.JOINORGANIZATION:\n return () => <IconMembers size={16} />;\n case InvitationType.ARRAYSHARE:\n return () => (\n <AssetTypeIcon\n size={16}\n assetType={\n notification.notification_event.invitation?.asset\n ?.asset_type as AssetType\n }\n active\n />\n );\n case InvitationType.GROUPSHARE:\n return () => (\n <AssetTypeIcon\n size={16}\n assetType={\n notification.notification_event.invitation?.asset\n ?.asset_type as AssetType\n }\n active\n />\n );\n default:\n return null;\n }\n }\n if (notification.type === NotificationType.Taskgraph) {\n return () => (\n <AssetTypeIcon\n size={16}\n assetType={AssetType.RegisteredTaskGraph}\n active\n />\n );\n }\n return null;\n};\n\nexport default getIconFromNotificationType;\n","import getNotificationIcon from './getNotificationIcon';\n\nexport default getNotificationIcon;\n","import { Notification, NotificationType } from 'api-client';\nimport { taskgraphLogsLinks } from 'utils/links';\nimport invitationLinks from 'utils/links/invitationLinks';\n\nconst getNotificationLink = (notification: Notification): string => {\n switch (notification.type) {\n case NotificationType.Invitation:\n return invitationLinks.accept({\n invitationId: notification.notification_event?.invitation\n ?.invitation_id as string,\n });\n case NotificationType.Taskgraph:\n return taskgraphLogsLinks.details({\n namespace: notification.notification_event?.taskgraph\n ?.namespace as string,\n taskGraphId: notification.notification_event?.taskgraph?.uuid as string,\n });\n default:\n return '';\n }\n};\n\nexport default getNotificationLink;\n","import getNotificationLink from './getNotificationLink';\n\nexport default getNotificationLink;\n","import { MutateResponse, useMutateRequest } from 'hooks/useRequest';\nimport { useMutation } from '@tanstack/react-query';\nimport {\n NotificationsApi_changeNotificationStatus,\n NotificationsApi_changeNotificationStatus$Params,\n NotificationsApi_changeNotificationStatus$Response,\n} from 'api-client';\nimport queryClient from 'utils/helpers/queryClient';\nimport { queryKey as countQueryKey } from '../useGetNotificationCount';\nimport { queryKey as listQueryKey } from '../useGetNotifications';\n\nconst keysToInvalidate = [countQueryKey, listQueryKey];\n\nconst useChangeNotificationStatus = (): MutateResponse<\n NotificationsApi_changeNotificationStatus$Params,\n NotificationsApi_changeNotificationStatus$Response\n> => {\n const { mutateAsync, isLoading, error, data } = useMutation(\n NotificationsApi_changeNotificationStatus,\n {\n // invalidate notification queries\n onSuccess: () => {\n queryClient.invalidateQueries({\n predicate: (query) =>\n keysToInvalidate.includes(query.queryKey[0] as string),\n });\n },\n }\n );\n\n return [\n useMutateRequest(mutateAsync),\n data,\n error as null | Error,\n isLoading,\n ];\n};\n\nexport default useChangeNotificationStatus;\n","import useChangeNotificationStatus from './useChangeNotificationStatus';\n\nexport default useChangeNotificationStatus;\nexport * from './useChangeNotificationStatus';\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M37.8462 22.339V39.3846C37.8462 40.2328 37.1559 40.9231 36.3077 40.9231H8.61539C7.76718 40.9231 7.07692 40.2328 7.07692 39.3846V14.7692C7.07692 13.921 7.76718 13.2308 8.61539 13.2308H25.661C25.5887 12.7272 25.5385 12.2159 25.5385 11.6923C25.5385 11.1687 25.5887 10.6574 25.661 10.1538H8.61539C6.07077 10.1538 4 12.2246 4 14.7692V39.3846C4 41.9292 6.07077 44 8.61539 44H36.3077C38.8523 44 40.9231 41.9292 40.9231 39.3846V21.4113C39.9662 21.8667 38.9333 22.1831 37.8462 22.339Z\" />\n <path d=\"M36.3405 19.319C40.5707 19.319 44 15.8897 44 11.6595C44 7.42927 40.5707 4 36.3405 4C32.1103 4 28.681 7.42927 28.681 11.6595C28.681 15.8897 32.1103 19.319 36.3405 19.319Z\" />\n </>,\n 'notification'\n);\n","import { MutateResponse, useMutateRequest } from 'hooks/useRequest';\nimport { useMutation } from '@tanstack/react-query';\nimport {\n NotificationsApi_deleteNotifications,\n NotificationsApi_deleteNotifications$Params,\n NotificationsApi_deleteNotifications$Response,\n} from 'api-client';\nimport queryClient from 'utils/helpers/queryClient';\nimport { queryKey as countQueryKey } from '../useGetNotificationCount';\nimport { queryKey as listQueryKey } from '../useGetNotifications';\n\nconst keysToInvalidate = [countQueryKey, listQueryKey];\n\nconst useDeleteNotifications = (): MutateResponse<\n NotificationsApi_deleteNotifications$Params,\n NotificationsApi_deleteNotifications$Response\n> => {\n const { mutateAsync, isLoading, error, data } = useMutation(\n NotificationsApi_deleteNotifications,\n {\n // invalidate notification queries\n onSuccess: () => {\n queryClient.invalidateQueries({\n predicate: (query) =>\n keysToInvalidate.includes(query.queryKey[0] as string),\n });\n },\n }\n );\n\n return [\n useMutateRequest(mutateAsync),\n data,\n error as null | Error,\n isLoading,\n ];\n};\n\nexport default useDeleteNotifications;\n","import useDeleteNotifications from './useDeleteNotifications';\n\nexport default useDeleteNotifications;\nexport * from './useDeleteNotifications';\n","import './NotificationItem.scss';\nimport * as React from 'react';\nimport {\n Notification,\n NotificationStatus,\n NotificationsApi_changeNotificationStatus$Params,\n NotificationsApi_deleteNotifications$Params,\n} from 'api-client';\nimport Text from 'components/Text';\nimport classNames from 'classnames';\nimport useDate from 'hooks/useDate';\nimport getNotificationDescription from './getNotificationDescription';\nimport { GradientIconType } from 'components/GradientIcons/createGradientIcon';\nimport getNotificationIcon from './getNotificationIcon';\nimport getNotificationLink from './getNotificationLink';\nimport Button from 'components/v2/Button';\nimport IconCheckFilled from 'components/Svg/icons/IconCheckFilled';\nimport Tooltip from 'components/Tooltip';\nimport IconTrash from 'components/Svg/icons/IconTrash';\nimport useChangeNotificationStatus from 'hooks/api/Notifications/useChangeNotificationStatus';\nimport { useUserContext } from 'store/UserContext';\nimport IconNotification from 'components/Svg/icons/IconNotification';\nimport useDeleteNotifications from 'hooks/api/Notifications/useDeleteNotifications';\nimport { CustomErrorBoundary } from 'components/ErrorBoundary';\nimport IconWarning from 'components/Svg/icons/IconWarning';\n\ninterface NotificationComponentProps {\n notification: Notification;\n onClick?: () => void;\n}\n\nconst NotificationComponent: React.FC<NotificationComponentProps> = (props) => {\n const { notification, onClick } = props;\n const { description, icon, link } = React.useMemo(() => {\n const description = getNotificationDescription(notification);\n const icon = getNotificationIcon(notification);\n const link = getNotificationLink(notification);\n return { description, icon, link };\n }, [notification]);\n\n return (\n <NotificationTemplate\n onClick={onClick}\n notification={notification}\n description={description}\n icon={icon}\n link={link}\n />\n );\n};\n\ninterface NotificationTemplateProps {\n onClick?: () => void;\n link?: string;\n notification: Notification;\n description: React.ReactNode;\n icon: GradientIconType | null;\n}\n\nexport const NotificationTemplate: React.FC<NotificationTemplateProps> = (\n props\n) => {\n const { notification, description, icon: Icon, link, onClick } = props;\n const { relativeTimeInWordsToNow } = useDate();\n const [changeStatusRequest, , , changeStatusLoading] =\n useChangeNotificationStatus();\n const [deleteNotifications, , , deleteLoading] = useDeleteNotifications();\n const { user } = useUserContext();\n const as = link ? 'a' : 'div';\n const isUnread = notification.status === NotificationStatus.Unread;\n\n const changeNotificationStatus = React.useCallback(() => {\n const data: NotificationsApi_changeNotificationStatus$Params = {\n namespace: user.id,\n statusChange: {\n notifications: [notification.id as string],\n status: isUnread ? NotificationStatus.Read : NotificationStatus.Unread,\n },\n };\n changeStatusRequest([data]);\n }, [user, notification, isUnread, changeStatusRequest]);\n\n const onChangeStatusClick = React.useCallback(\n (e: React.SyntheticEvent) => {\n e.preventDefault(); // prevent anchor click\n e.stopPropagation(); // prevent parent element's onClick\n changeNotificationStatus();\n },\n [changeNotificationStatus]\n );\n const onDeleteClick = React.useCallback(\n (e: React.SyntheticEvent) => {\n e.preventDefault(); // prevent anchor click\n e.stopPropagation(); // prevent parent element's onClick\n\n const data: NotificationsApi_deleteNotifications$Params = {\n namespace: user.id,\n notifications: [notification.id as string],\n };\n deleteNotifications([data]);\n },\n [notification, user, deleteNotifications]\n );\n\n const handleClick = React.useCallback(() => {\n if (notification.status === NotificationStatus.Unread) {\n changeNotificationStatus();\n }\n onClick?.();\n }, [notification.status, changeNotificationStatus, onClick]);\n\n return (\n <Text\n as={as}\n to={link}\n className={classNames('TDB-NotificationItem', {\n 'TDB-NotificationItem--active': isUnread,\n })}\n role=\"alert\"\n onClick={handleClick}\n >\n <div className=\"TDB-NotificationItem__status\">\n <div\n className={classNames('TDB-NotificationItem__status__dot', {\n 'TDB-NotificationItem__status__dot--active': isUnread,\n })}\n />\n </div>\n {Icon && (\n <div className=\"TDB-NotificationItem__icon\">\n <Icon active={isUnread} />\n </div>\n )}\n\n <div className=\"TDB-NotificationItem__main\">\n {notification.created_at && (\n <Text\n color=\"text-main-tertiary\"\n as=\"p\"\n variant=\"subtext\"\n className=\"TDB-NotificationItem__date mb-half\"\n fontWeight=\"semi-bold\"\n >\n {relativeTimeInWordsToNow(notification.created_at)} ago\n </Text>\n )}\n <Text\n as=\"p\"\n color=\"text-main-secondary\"\n fontWeight=\"semi-bold\"\n variant=\"body-md\"\n className=\"TDB-NotificationItem__description\"\n >\n {description}\n </Text>\n </div>\n <div className=\"TDB-NotificationItem__actions\">\n <Tooltip content={`Mark as ${isUnread ? 'read' : 'unread'}`}>\n <Button\n className=\"TDB-NotificationItem__actions__button\"\n icon={() =>\n isUnread ? (\n <IconCheckFilled size=\"2.5rem\" />\n ) : (\n <IconNotification size=\"2.5rem\" />\n )\n }\n variant=\"plain\"\n size=\"medium\"\n onClick={onChangeStatusClick}\n loading={changeStatusLoading}\n dataTestID=\"button-change-notification-status\"\n />\n </Tooltip>\n <Tooltip content=\"Delete\">\n <Button\n className=\"TDB-NotificationItem__actions__button\"\n icon={() => (\n <IconTrash size=\"2.5rem\" colorToken=\"text-main-tertiary\" />\n )}\n variant=\"plain\"\n size=\"medium\"\n onClick={onDeleteClick}\n loading={deleteLoading}\n dataTestID=\"button-delete-notification\"\n />\n </Tooltip>\n </div>\n </Text>\n );\n};\n\ninterface ErrorBoundaryContentProps {\n notification: Notification;\n}\n\nexport const ErrorBoundaryContent: React.FC<ErrorBoundaryContentProps> = (\n props\n) => {\n const { notification } = props;\n const [deleteNotifications, , , deleteLoading] = useDeleteNotifications();\n const { user } = useUserContext();\n const onDeleteClick = React.useCallback(() => {\n const data: NotificationsApi_deleteNotifications$Params = {\n namespace: user.id,\n notifications: [notification.id as string],\n };\n deleteNotifications([data]);\n }, [notification, user, deleteNotifications]);\n\n return (\n <div className=\"d-flex align-center justify-space-between\">\n <div className=\"d-flex align-center\">\n <IconWarning className=\"mr-1\" />\n <Text>Notification is corrupted.</Text>\n </div>\n <Button\n className=\"TDB-NotificationItem__actions__button\"\n icon={() => <IconTrash size=\"2.5rem\" />}\n variant=\"plain\"\n size=\"medium\"\n onClick={onDeleteClick}\n loading={deleteLoading}\n dataTestID=\"button-delete-notification\"\n />\n </div>\n );\n};\n\n// NotificationWithErrorBoundary will catch any error in the notification item\n// and will try to delete the notification to prevent page crash\nconst NotificationWithErrorBoundary: React.FC<NotificationComponentProps> = (\n props\n) => {\n return (\n <CustomErrorBoundary\n fallbackContent={\n <ErrorBoundaryContent notification={props.notification} />\n }\n >\n <NotificationComponent {...props} />\n </CustomErrorBoundary>\n );\n};\n\nexport default NotificationWithErrorBoundary;\n","import NotificationItem from './NotificationItem';\n\nexport default NotificationItem;\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M38.9453 36.358H9.08144L8.98207 36.2457C7.96817 36.2457 7.16454 35.9807 6.57118 35.4507C5.97782 34.9207 5.68114 34.2236 5.68114 33.3595C5.68114 32.6797 5.85108 32.0374 6.19097 31.4325C6.52509 30.8219 6.95715 30.2372 7.48714 29.6784C8.01137 29.1196 8.55289 28.5809 9.11168 28.0625C9.58407 27.6419 9.94124 27.0831 10.1832 26.3861C10.4251 25.689 10.6152 24.9084 10.7535 24.0443C10.886 23.1745 11.0041 22.2902 11.1078 21.3915C11.2461 19.2139 11.5831 17.2581 12.1188 15.5241C12.6488 13.7844 13.4236 12.3154 14.4433 11.1171C15.4572 9.91313 16.7447 9.02885 18.3059 8.46429C18.7149 7.22573 19.4177 6.19743 20.4143 5.3794C21.411 4.56136 22.5919 4.15234 23.9572 4.15234C25.3254 4.15234 26.5136 4.56424 27.5217 5.38803C28.5241 6.21182 29.224 7.24301 29.6215 8.48157C31.1884 9.05189 32.4789 9.93905 33.4928 11.1431C34.5009 12.3471 35.2757 13.8189 35.8172 15.5587C36.353 17.2927 36.6842 19.2514 36.811 21.4347C36.9204 22.3391 37.0414 23.2263 37.1739 24.0962C37.3064 24.9603 37.4965 25.7438 37.7442 26.4466C37.9919 27.1436 38.3462 27.7053 38.8071 28.1316C39.3774 28.6501 39.9276 29.1916 40.4575 29.7561C40.9818 30.3207 41.4138 30.9083 41.7537 31.5189C42.0936 32.1238 42.2635 32.769 42.2635 33.4546C42.2635 34.3187 41.9669 35.0186 41.3735 35.5544C40.7801 36.0901 39.9708 36.358 38.9453 36.358ZM25.0763 18.1209L19.6523 24.9849C19.1723 25.6089 18.9323 26.3049 18.9323 27.0729C18.9323 27.3929 19.0443 27.6649 19.2683 27.8889C19.4923 28.1129 19.7643 28.2249 20.0843 28.2249H27.8603C28.1803 28.2249 28.4523 28.1129 28.6763 27.8889C28.9003 27.6649 29.0123 27.3929 29.0123 27.0729C29.0123 26.7529 28.9003 26.4809 28.6763 26.2569C28.4523 26.0169 28.1803 25.8969 27.8603 25.8969H22.8683C22.8523 25.8969 22.8443 25.8889 22.8443 25.8729C22.8603 25.8729 22.8683 25.8649 22.8683 25.8489L28.2923 18.9849C28.7723 18.3609 29.0123 17.6649 29.0123 16.8969C29.0123 16.5769 28.9003 16.3049 28.6763 16.0809C28.4523 15.8569 28.1803 15.7449 27.8603 15.7449H20.0843C19.7643 15.7449 19.4923 15.8569 19.2683 16.0809C19.0443 16.3049 18.9323 16.5769 18.9323 16.8969C18.9323 17.2169 19.0443 17.4969 19.2683 17.7369C19.4923 17.9609 19.7643 18.0729 20.0843 18.0729H25.0763C25.0923 18.0729 25.1003 18.0809 25.1003 18.0969C25.0843 18.0969 25.0763 18.1049 25.0763 18.1209Z\"\n />\n <path d=\"M27.0551 43.4351C26.1564 43.9133 25.1396 44.1523 24.0047 44.1523L23.9875 44.1264C22.8583 44.1264 21.8502 43.8902 20.9631 43.4178C20.0701 42.9397 19.3529 42.3089 18.8114 41.5254C18.2641 40.742 17.9559 39.8865 17.8868 38.959H30.1227C30.0363 39.8865 29.7281 40.7448 29.1981 41.5341C28.6623 42.3233 27.948 42.957 27.0551 43.4351Z\" />\n </>,\n 'bell-filled-snoozed'\n);\n","import './InboxContent.scss';\nimport React, { useMemo } from 'react';\nimport { queryKey as getNotificationsQueryKey } from 'hooks/api/Notifications/useGetNotifications';\nimport Text from 'components/Text';\nimport useInboxStore from 'store/InboxStore';\nimport pluralize from 'utils/helpers/string/pluralize';\nimport useMarkAllNotificationsAsRead from 'hooks/api/Notifications/useMarkAllNotificationsAsRead';\nimport { isNumber } from 'utils/helpers/number';\nimport LazyLoadListWrapper from 'components/LazyLoadListWrapper';\nimport NotificationItem from './NotificationItem';\nimport { useInfiniteQuery } from '@tanstack/react-query';\nimport {\n Notification,\n NotificationsApi_listNotifications,\n NotificationsApi_listNotifications$Response,\n} from 'api-client';\nimport { chain } from 'ramda';\nimport { AxiosResponse } from 'axios';\nimport Button from 'components/v2/Button';\nimport { useUserContext } from 'store/UserContext';\nimport IconCheckFilled from 'components/Svg/icons/IconCheckFilled';\nimport { CustomErrorBoundary } from 'components/ErrorBoundary';\nimport IconBellFilled from 'components/Svg/icons/IconBellFilled';\nimport useUserPreferencesStore from 'store/UserPreferencesStore';\nimport IconBellFilledSnoozed from 'components/Svg/icons/IconBellFilledSnoozed';\nimport Tooltip from 'components/Tooltip';\nimport Placeholder from 'components/v2/Placeholder';\n\ninterface InboxContentProps {\n closeDialogFunc: () => void;\n}\n\nconst InboxContent: React.FC<InboxContentProps> = (props) => {\n const { closeDialogFunc } = props;\n const { user } = useUserContext();\n const { notificationsSnoozed, setNotificationsSnoozed } =\n useUserPreferencesStore((state) => ({\n notificationsSnoozed: state.notificationsSnoozed,\n setNotificationsSnoozed: state.setNotificationsSnoozed,\n }));\n const unreadCount = useInboxStore((state) => state.unreadCount);\n const [markAllAsRead, , , markAllAsReadLoading] =\n useMarkAllNotificationsAsRead();\n const params = {\n page: 1,\n perPage: 10,\n };\n const response = useInfiniteQuery<any, Error>(\n [getNotificationsQueryKey, params], // cache\n ({ pageParam = 1 }) =>\n NotificationsApi_listNotifications({\n ...params,\n page: pageParam,\n namespace: user.id,\n }) as any,\n {\n getNextPageParam: (lastPage) => {\n /**\n * If there is another page to fetch, return it here\n * If the page returned is a truthy value, we can use directly the `fetchNextPage()` helper function\n * If it is falsy, fetchNextPage() will not run (since we reached the end of the pagination)\n */\n const { page, total_pages } = lastPage.data.pagination_metadata;\n if (page <= total_pages - 1) {\n // return next page\n return page + 1;\n }\n // we reached the end\n return undefined;\n },\n }\n );\n\n const { notifications, fetchMore, error, loading } = useMemo(() => {\n const fetchMore = response.fetchNextPage;\n const error = response.error;\n const notifications = chain<\n AxiosResponse<NotificationsApi_listNotifications$Response>,\n Notification\n >((page) => page.data?.notifications || [], response?.data?.pages || []);\n // show loader when fetching for the first time\n // or when fetching next page\n const loading =\n (notifications.length === 0 && response.isFetching) ||\n (notifications.length > 0 && response?.isFetchingNextPage);\n\n return { notifications, fetchMore, error, loading };\n }, [response]);\n\n return (\n <div className=\"TDB-InboxContent\" data-testid=\"inbox-content\">\n <Text\n variant=\"heading-2\"\n fontWeight=\"bold\"\n color=\"text-main-primary\"\n className=\"mb-2\"\n as=\"h5\"\n >\n Notifications\n </Text>\n {error && (\n <Text as=\"p\" fontWeight=\"semi-bold\" align=\"center\">\n An unexpected error occurred\n </Text>\n )}\n {!error && (\n <>\n <div className=\"TDB-InboxContent__header\">\n <Text className=\"TDB-InboxContent__header__title\">\n {isNumber(unreadCount) && unreadCount > 0 ? (\n <Text\n variant=\"body-md\"\n fontWeight=\"medium\"\n color=\"text-main-primary\"\n >\n You have{' '}\n <Text\n variant=\"heading-2\"\n color=\"text-action-brand\"\n fontWeight=\"bold\"\n >\n {unreadCount}\n </Text>{' '}\n unread{' '}\n {pluralize(unreadCount, 'notification', 'notifications')}\n </Text>\n ) : (\n <Text variant=\"heading-2\" fontWeight=\"semi-bold\">\n You're all caught up\n </Text>\n )}\n </Text>\n <hr />\n <div className=\"TDB-InboxContent__header__bulk-actions\">\n {isNumber(unreadCount) && unreadCount > 0 && (\n <Button\n variant=\"outlined\"\n size=\"medium\"\n icon={IconCheckFilled}\n dataTestID=\"mark-all-inbox-as-read\"\n loading={markAllAsReadLoading}\n onClick={() => markAllAsRead([{ namespace: user.id }])}\n >\n Mark all as read\n </Button>\n )}\n <Tooltip\n content={`${\n notificationsSnoozed ? 'Unsnooze' : 'Snooze'\n } notifications`}\n >\n <Button\n variant=\"outlined\"\n size=\"medium\"\n dataTestID=\"snooze-notifications\"\n icon={\n notificationsSnoozed\n ? IconBellFilled\n : IconBellFilledSnoozed\n }\n onClick={() => setNotificationsSnoozed(!notificationsSnoozed)}\n />\n </Tooltip>\n </div>\n </div>\n {!loading && !!notifications && notifications.length === 0 && (\n <div\n className=\"TDB-InboxContent__no-content\"\n data-testid=\"inbox-no-content\"\n >\n <Placeholder graphic=\"no-notifications\" />\n </div>\n )}\n <div className=\"TDB-InboxContent__list\">\n <LazyLoadListWrapper loading={loading} onScrollEnd={fetchMore}>\n {notifications?.map((n) => (\n <NotificationItem\n key={n.id}\n notification={n}\n onClick={closeDialogFunc}\n />\n ))}\n </LazyLoadListWrapper>\n </div>\n </>\n )}\n </div>\n );\n};\n\nconst InboxContentWithErrorBoundary: React.FC<InboxContentProps> = (props) => {\n return (\n <CustomErrorBoundary>\n <InboxContent {...props} />\n </CustomErrorBoundary>\n );\n};\n\nexport default InboxContentWithErrorBoundary;\n","import InboxContent from './InboxContent';\n\nexport default InboxContent;\n","import InboxButton from './InboxButton';\n\nexport default InboxButton;\n","import './InboxButton.scss';\nimport Button from 'components/v2/Button';\nimport Dialog from 'components/Dialog';\nimport IconBellFilled from 'components/Svg/icons/IconBellFilled';\nimport Text from 'components/Text';\nimport React, { useState } from 'react';\nimport useInboxStore, { useInboxPolling } from 'store/InboxStore';\nimport InboxContent from '../InboxContent';\nimport { isNumber } from 'utils/helpers/number';\nimport useUserPreferencesStore from 'store/UserPreferencesStore';\nimport IconBellFilledSnoozed from 'components/Svg/icons/IconBellFilledSnoozed';\n\nconst InboxButton: React.FC = () => {\n const [dialogActive, setDialogActive] = useState(false);\n const unreadCount = useInboxStore((state) => state.unreadCount);\n const notificationsSnoozed = useUserPreferencesStore(\n (state) => state.notificationsSnoozed\n );\n useInboxPolling();\n\n return (\n <div className=\"TDB-InboxButton\">\n <Dialog\n interactive\n trigger=\"manual\"\n placement=\"bottom\"\n content={\n <InboxContent closeDialogFunc={() => setDialogActive(false)} />\n }\n preventOverflow\n variant=\"transparent\"\n className=\"TDB-InboxDialog\"\n visible={dialogActive}\n handleCloseDialog={() => setDialogActive(false)}\n >\n {!notificationsSnoozed && isNumber(unreadCount) && unreadCount > 0 && (\n <div className=\"TDB-InboxButton__badge\">\n <Text\n as=\"p\"\n color=\"text-action-primary\"\n variant=\"subtext-small\"\n fontWeight=\"bold\"\n dataTestId=\"inbox-button-badge\"\n >\n {unreadCount}\n </Text>\n </div>\n )}\n <Button\n icon={notificationsSnoozed ? IconBellFilledSnoozed : IconBellFilled}\n size=\"medium\"\n variant=\"secondary\"\n onClick={() => setDialogActive(!dialogActive)}\n dataTestID=\"inbox-button\"\n />\n </Dialog>\n </div>\n );\n};\n\nexport default InboxButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"burger\":\"Header_burger__k5ipm\"};","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"Breadcrumb_content__QlxQo\",\"container\":\"Breadcrumb_container__XkSnm\"};","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"BreadcrumbItemTitle_item__e0tut\",\"itemWrapper\":\"BreadcrumbItemTitle_itemWrapper__sDG5N\",\"clickable\":\"BreadcrumbItemTitle_clickable__95SYB\",\"active\":\"BreadcrumbItemTitle_active__uGza+\",\"block\":\"BreadcrumbItemTitle_block__omGv+\",\"container\":\"BreadcrumbItemTitle_container__9ILLE\",\"hidden\":\"BreadcrumbItemTitle_hidden__VfpeO\"};","import useAsync from './useAsync';\n\nexport default useAsync;\n","import { useState, useEffect } from 'react';\n\ntype AsyncState<T> = {\n data: T | null;\n error: Error | null;\n isLoading: boolean;\n};\n\nconst useAsync = <T>(asyncPromise: Promise<T>): AsyncState<T> => {\n const [data, setData] = useState<T | null>(null);\n const [error, setError] = useState<Error | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n useEffect(() => {\n asyncPromise\n .then((result) => {\n setData(result);\n })\n .catch((err) => {\n setError(err as any);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, [asyncPromise]);\n\n return { data, error, isLoading };\n};\n\nexport default useAsync;\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport Typography from 'components/Typography';\nimport HistoryItem from 'store/HistoryStack/HistoryItem';\nimport styles from './BreadcrumbItemTitle.module.scss';\nimport useAsync from 'hooks/useAsync';\nimport useMeasure from 'react-use-measure';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { Link } from 'react-router-dom';\nimport ConditionalWrapper from 'components/ConditionalWrapper';\n\ninterface Props extends React.PropsWithChildren {\n item: HistoryItem;\n active: boolean;\n onClick?: () => void;\n variant?: 'block';\n hidden?: boolean;\n onWidthUpdate?: (values: { width: number; key: string }) => void;\n}\n\nconst BreadcrumbItemTitle: React.FC<Props> = (props) => {\n const { active, item, children, onClick, variant, onWidthUpdate, hidden } =\n props;\n const { isLoading, data: title } = useAsync(item.getTitle as Promise<string>);\n\n const [containerRef, containerBounds] = useMeasure({\n polyfill: ResizeObserver,\n });\n\n React.useEffect(() => {\n onWidthUpdate?.({ width: containerBounds.width, key: item.key });\n }, [\n containerBounds.width,\n item.title,\n onWidthUpdate,\n isLoading,\n item.pathname,\n item.key,\n ]);\n\n const onClickHandler = React.useCallback(\n (e: React.MouseEvent<HTMLParagraphElement>) => {\n if (!e.ctrlKey) {\n onClick?.();\n e.stopPropagation();\n e.preventDefault();\n }\n },\n [onClick]\n );\n\n return (\n <div\n ref={containerRef}\n className={classNames(styles.container, {\n [styles.block]: variant === 'block',\n [styles.hidden]: hidden,\n })}\n >\n {!isLoading && (\n <div className={classNames(styles.itemWrapper)}>\n <ConditionalWrapper\n left={(children) => <Link to={item.pathname}>{children}</Link>}\n right={(children) => children}\n condition={!active}\n >\n <Typography\n onClick={onClickHandler}\n ellipsis={active}\n className={classNames(styles.item, {\n [styles.active]: active,\n [styles.clickable]: !active && !!onClick,\n })}\n fontSize=\"body-sm\"\n fontWeight=\"500\"\n >\n {title}\n </Typography>\n </ConditionalWrapper>\n\n {children}\n </div>\n )}\n </div>\n );\n};\n\nexport default BreadcrumbItemTitle;\n","import BreadcrumbItemTitle from './BreadcrumbItemTitle';\n\nexport default BreadcrumbItemTitle;\n","// extracted by mini-css-extract-plugin\nexport default {\"separator\":\"BreadcrumbItem_separator__doifk\"};","import BreadcrumbItem from './BreadcrumbItem';\n\nexport default BreadcrumbItem;\n","import * as React from 'react';\nimport HistoryItem from 'store/HistoryStack/HistoryItem';\nimport BreadcrumbItemTitle from '../BreadcrumbItemTitle';\nimport IconCarretRight from 'components/Svg/icons/IconCarretRight';\nimport styles from './BreadcrumbItem.module.scss';\n\ntype Props = {\n active: boolean;\n item: HistoryItem;\n goBack: () => void;\n hidden?: boolean;\n onWidthUpdate?: (values: { width: number; key: string }) => void;\n};\n\nconst BreadcrumbItem: React.FC<Props> = (props) => {\n const { active, item, goBack, onWidthUpdate, hidden } = props;\n\n return (\n <BreadcrumbItemTitle\n item={item}\n hidden={hidden}\n onWidthUpdate={onWidthUpdate}\n onClick={!active ? goBack : undefined}\n active={active}\n >\n {!active && (\n <IconCarretRight\n colorToken=\"color-text-disabled\"\n className={styles.separator}\n />\n )}\n </BreadcrumbItemTitle>\n );\n};\n\nexport default BreadcrumbItem;\n","// extracted by mini-css-extract-plugin\nexport default {\"itemWrapper\":\"BreadcrumbHiddenContent_itemWrapper__7NJOJ\",\"clickable\":\"BreadcrumbHiddenContent_clickable__SUpS1\",\"separator\":\"BreadcrumbHiddenContent_separator__iSWwp\",\"popover\":\"BreadcrumbHiddenContent_popover__QJyQR\"};","import * as React from 'react';\nimport classNames from 'classnames';\nimport HistoryItem from 'store/HistoryStack/HistoryItem';\nimport styles from './BreadcrumbHiddenContent.module.scss';\nimport Dialog from 'components/Dialog';\nimport IconBulletsHorizontal from 'components/Svg/icons/IconBulletsHorizontal';\nimport IconCarretRight from 'components/Svg/icons/IconCarretRight';\nimport BreadcrumbItemTitle from '../BreadcrumbItemTitle';\n\nexport type HistoryItemWithkeyAndPosition = HistoryItem & {\n key: string;\n position: number;\n};\n\ntype Props = {\n items: HistoryItemWithkeyAndPosition[];\n goBack: (n: number) => void;\n};\n\nconst BreadcrumbHiddenContent: React.FC<Props> = (props) => {\n const { goBack, items } = props;\n\n return (\n <div\n data-testid=\"breadcrumb-hidden-items\"\n className={classNames(styles.itemWrapper, styles.clickable)}\n >\n <Dialog\n trigger=\"click\"\n placement=\"bottom-start\"\n variant=\"transparent\"\n content={\n <div className={styles.popover}>\n {items\n .sort((a, b) => {\n if (a.position > b.position) {\n return 1;\n }\n return -1;\n })\n .map((item, i) => (\n <BreadcrumbItemTitle\n variant=\"block\"\n key={`${item.pathname}-hidden-${item.key}`}\n item={item}\n onClick={() => goBack(item.position)}\n active={false}\n />\n ))}\n </div>\n }\n >\n <IconBulletsHorizontal size={14} />\n </Dialog>\n <IconCarretRight\n colorToken=\"color-text-disabled\"\n className={styles.separator}\n />\n </div>\n );\n};\n\nexport default BreadcrumbHiddenContent;\n","import BreadcrumbHiddenContent from './BreadcrumbHiddenContent';\n\nexport default BreadcrumbHiddenContent;\n","import * as React from 'react';\nimport Fetching from 'components/v2/Fetching';\nimport Typography from 'components/Typography';\nimport HistoryItem from 'store/HistoryStack/HistoryItem';\nimport useAsync from 'hooks/useAsync';\n\ninterface Props {\n item: HistoryItem;\n}\n\nconst BreadcrumbTitle: React.FC<Props> = (props) => {\n const { item } = props;\n const { isLoading, data: title } = useAsync(item.getTitle as Promise<string>);\n\n return (\n <Fetching isLoading={isLoading} skeleton={<></>}>\n <Typography fontSize=\"heading-xs\" fontWeight=\"700\">\n {title}\n </Typography>\n </Fetching>\n );\n};\n\nexport default BreadcrumbTitle;\n","import BreadcrumbTitle from './BreadcrumbTitle';\n\nexport default BreadcrumbTitle;\n","import * as React from 'react';\nimport HistoryItem from 'store/HistoryStack/HistoryItem';\nimport styles from './Breadcrumb.module.scss';\nimport BreadcrumbItem from './BreadcrumbItem';\nimport BreadcrumbHiddenContent from './BreadcrumbHiddenContent';\nimport useMeasure from 'react-use-measure';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport useHistoryStore, {\n useGetNavigationItemsSinceRoot,\n} from 'store/HistoryStack';\nimport history from 'utils/helpers/history';\nimport BreadcrumbTitle from './BreadcrumbTitle';\nimport { HistoryItemWithkeyAndPosition } from './BreadcrumbHiddenContent/BreadcrumbHiddenContent';\nimport { isNumber } from 'utils/helpers/number';\n\ntype Props = {\n items: HistoryItem[];\n goBack: (n: number) => void;\n};\n\ninterface ChildWidths {\n width: number;\n key: string;\n}\n\nconst MORE_CONTENT_WIDTH = 48;\n\nexport const Breadcrumb: React.FC<Props> = (props) => {\n const { items, goBack } = props;\n const [containerRef, containerBounds] = useMeasure({\n polyfill: ResizeObserver,\n });\n const historyItems: HistoryItemWithkeyAndPosition[] = React.useMemo(() => {\n return items.map((item, i) => ({\n ...item,\n key: `${item.key}-${i}`,\n position: i,\n }));\n }, [items]);\n const [hiddenItems, setHiddenItems] = React.useState<\n Set<HistoryItemWithkeyAndPosition>\n >(new Set());\n\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [childrenWidths, setChildWidth] = React.useState<\n Record<string, number>\n >({});\n const threshold = React.useMemo(\n () =>\n hiddenItems.size > 0\n ? containerBounds.width - MORE_CONTENT_WIDTH\n : containerBounds.width,\n [containerBounds.width, hiddenItems.size]\n );\n\n const updateChildWidth = React.useCallback((values: ChildWidths) => {\n setChildWidth((widths) => ({\n ...widths,\n [values.key]: values.width,\n }));\n }, []);\n\n const itemsLength = items.length;\n\n React.useEffect(() => {\n setHiddenItems(new Set());\n }, [itemsLength]);\n\n React.useEffect(() => {\n if (containerBounds.width < 10) {\n return;\n }\n\n /**\n * Total width cache (used in the iteration)\n */\n let totalWidth = 0;\n\n /**\n * Iterate through every button\n * If the button can fit in the current viewport we append it in the \"visible\" list\n * Otherwise we append it in the \"hidden\" list\n */\n if (!historyItems.length) {\n return;\n }\n // Remove first item from threshold\n const firstItemKey = historyItems[0].key;\n const firstItemWidth = childrenWidths[firstItemKey];\n let thresholdExcludingFirstAndLastItem = threshold;\n if (firstItemWidth) {\n thresholdExcludingFirstAndLastItem -= firstItemWidth;\n }\n\n if (items.length > 2) {\n const lastPosition = itemsLength - 1;\n const lastItemKey = historyItems[lastPosition].key;\n const lastItemWidth = childrenWidths[lastItemKey];\n // Remove last item from threshold\n if (isNumber(lastItemWidth) && !isNaN(lastItemWidth)) {\n thresholdExcludingFirstAndLastItem -= lastItemWidth;\n }\n }\n\n for (let i = itemsLength - 2; i >= 0; i--) {\n // Skip first item (will always be visible)\n if (i === 0) {\n continue;\n }\n const historyItem = historyItems[i];\n const key = historyItem.key;\n const itemWidth = childrenWidths[key];\n\n if (!itemWidth) {\n continue;\n }\n\n if (hiddenItems.size > 0) {\n /**\n * If we hit overflow we put all the rest of the items in hidden,\n * This way we make sure we keep them in the same order.\n * (e.g. having the 2nd item in the hidden content and the 3rd showing because it's smaller).\n */\n setHiddenItems((hiddenItems) => new Set(hiddenItems).add(historyItem));\n continue;\n }\n const nextTotalWidth = totalWidth + itemWidth;\n if (nextTotalWidth < thresholdExcludingFirstAndLastItem) {\n totalWidth = nextTotalWidth;\n } else {\n /**\n * When we have hidden items, we render a \"more items\" button that we need to account the width that is taking (check threshold)\n * We always render first item so we skip first item.\n */\n setHiddenItems((hiddenItems) => new Set(hiddenItems).add(historyItem));\n }\n }\n }, [\n childrenWidths,\n containerBounds.width,\n hiddenItems.size,\n historyItems,\n items.length,\n itemsLength,\n threshold,\n ]);\n\n if (!items.length) {\n return null;\n }\n\n if (items.length === 1) {\n return <BreadcrumbTitle item={items[0]} />;\n }\n\n return (\n <div className={styles.container} ref={containerRef}>\n <div ref={contentRef} className={styles.content}>\n <BreadcrumbItem\n onWidthUpdate={updateChildWidth}\n goBack={() => goBack(itemsLength)}\n item={historyItems[0]}\n key={`${historyItems[0].pathname}-0`}\n active={false}\n />\n {hiddenItems.size > 0 && (\n <BreadcrumbHiddenContent\n goBack={(n: number) => goBack(itemsLength - n)}\n items={Array.from(hiddenItems)}\n />\n )}\n {historyItems.map((item, i) => {\n const { key } = item;\n\n if (i === 0) {\n return null;\n }\n\n const isLast = item.position === itemsLength - 1;\n return (\n <BreadcrumbItem\n hidden={hiddenItems.has(item)}\n onWidthUpdate={updateChildWidth}\n goBack={() => goBack(itemsLength - i)}\n item={item}\n key={key}\n active={isLast} // Active is the last item in the stack\n />\n );\n })}\n </div>\n </div>\n );\n};\n\nconst BreadcrumbWithStore: React.FC = () => {\n const historyItems = useHistoryStore(useGetNavigationItemsSinceRoot);\n const onItemClick = React.useCallback((n: number) => {\n history.pushWithSameKeyAsNItem(n);\n }, []);\n\n return <Breadcrumb items={historyItems} goBack={onItemClick} />;\n};\n\nexport default BreadcrumbWithStore;\n","import Breadcrumb from './Breadcrumb';\nexport * from './Breadcrumb';\n\nexport default Breadcrumb;\n","import Header from './Header';\n\nexport default Header;\n","import React from 'react';\nimport { useUserContext } from 'store/UserContext';\nimport useScrollPosition from '@react-hook/window-scroll';\nimport Button from 'components/v2/Button';\nimport IconBurger from 'components/Svg/icons/IconBurger';\nimport toggleMainSidebar from 'utils/helpers/toggleMainSidebar';\nimport useHeader from 'store/HeaderStore';\nimport AuthRender from 'components/AuthRender';\nimport { Link, useLocation } from 'react-router-dom';\nimport { authLinks, overviewLinks } from 'utils/links';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport InboxButton from './components/inbox/InboxButton';\nimport classNames from 'classnames';\nimport styles from './Header.module.scss';\nimport Breadcrumb from 'components/v2/Breadcrumb';\nimport './Header.scss';\n\nconst Header: React.FC = () => {\n const { isLoggedIn } = useUserContext();\n const scrollY = useScrollPosition(60 /*fps*/);\n const headerContent = useHeader((state) => state.HeaderContent);\n const { variant } = headerContent;\n const { workspace } = useWorkspaceContext();\n const isTransparentVariant = variant === 'transparent';\n const { pathname } = useLocation();\n const isOverviewRoute = pathname === overviewLinks.root();\n\n return (\n <>\n <header\n className={classNames(\n 'TDB-Header',\n classNames({\n 'TDB-Header--floating': scrollY > 0,\n 'TDB-Header--transparent': isTransparentVariant,\n })\n )}\n >\n <div className=\"TDB-Header__Title\">\n <Button\n className={styles.burger}\n size=\"medium\"\n variant=\"secondary\"\n icon={IconBurger}\n onClick={(): void => {\n toggleMainSidebar(true);\n }}\n dataTestID=\"main-sidebar-burger-button\"\n />\n {!isTransparentVariant && !isOverviewRoute && <Breadcrumb />}\n </div>\n {headerContent.render && (\n <div className=\"TDB-Header__Children\">\n {headerContent.render({ isLoggedIn })}\n </div>\n )}\n <div className=\"TDB-Header__aside\">\n <AuthRender inverse>\n <div className=\"d-flex\">\n <Link to={authLinks.login()} className=\"mr-2\">\n <Button size=\"medium\" variant=\"outlined\">\n Log in\n </Button>\n </Link>\n <Link to={authLinks.signup()}>\n <Button size=\"medium\" variant=\"primary\">\n Sign up\n </Button>\n </Link>\n </div>\n </AuthRender>\n <AuthRender>{workspace && <InboxButton />}</AuthRender>\n </div>\n </header>\n </>\n );\n};\n\nexport default Header;\n","import useAuthValue from './useAuthValue';\n\nexport default useAuthValue;\n","import { useUserContext } from 'store/UserContext';\n\n/**\n * Hook that returns a value depending on auth state\n * it accepts 2 values, one for authenticated users and one for public\n */\nconst useAuthValue = <T, P = T>(authValue: T, publicValue: T | P): T | P => {\n const { isLoggedIn } = useUserContext();\n\n return isLoggedIn ? authValue : publicValue;\n};\n\nexport default useAuthValue;\n","import {\n OrganizationApi_fetchAllOrganizations,\n OrganizationApi_fetchAllOrganizations$Params,\n OrganizationApi_fetchAllOrganizations$Path,\n OrganizationApi_fetchAllOrganizations$Response,\n} from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\n\nconst useGetOrganizations: UseRequestType<\n OrganizationApi_fetchAllOrganizations$Params,\n OrganizationApi_fetchAllOrganizations$Response\n> = (queryData, config, queryConfig) => {\n const { isLoading, data, error, refetch } = useQuery<\n AxiosResponse<OrganizationApi_fetchAllOrganizations$Response>,\n OrganizationApi_fetchAllOrganizations$Params\n >(\n [OrganizationApi_fetchAllOrganizations$Path, queryData],\n useQueryRequest(OrganizationApi_fetchAllOrganizations, config),\n queryConfig\n );\n\n return [refetch, data, error, isLoading];\n};\n\nexport default useGetOrganizations;\n","import useGetOrganizations from './useGetOrganizations';\n\nexport default useGetOrganizations;\nexport * from './useGetOrganizations';\n","import eventBus, { EventTypes } from 'utils/helpers/eventBus';\n\nfunction toggleWorkspaceMenu(state: boolean): void {\n eventBus.emit(EventTypes.TOGGLE_WORKSPACE_MENU, state);\n}\n\nexport default toggleWorkspaceMenu;\n","import toggleWorkspaceMenu from './toggleWorkspaceMenu';\n\nexport default toggleWorkspaceMenu;\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M22.6301 5C23.6183 5 24.566 5.39256 25.2647 6.09132C25.9635 6.79009 26.3561 7.73781 26.3561 8.72601V13.3835C26.3561 14.3717 25.9635 15.3195 25.2647 16.0182C24.566 16.717 23.6183 17.1095 22.6301 17.1095H17.9725C16.305 17.1094 14.7008 17.7481 13.4898 18.8944C12.2787 20.0407 11.5528 21.6074 11.4613 23.2724L11.452 23.6301C11.4519 25.2976 12.0906 26.9018 13.2369 28.1128C14.3832 29.3239 15.9498 30.0498 17.6148 30.1413L17.9725 30.1506H22.6301C23.6183 30.1506 24.566 30.5431 25.2647 31.2419C25.9635 31.9407 26.3561 32.8884 26.3561 33.8766V38.5341C26.3561 39.5223 25.9635 40.47 25.2647 41.1688C24.566 41.8675 23.6183 42.2601 22.6301 42.2601H7.72601C6.73781 42.2601 5.79009 41.8675 5.09132 41.1688C4.39256 40.47 4 39.5223 4 38.5341V8.72601C4 7.73781 4.39256 6.79009 5.09132 6.09132C5.79009 5.39256 6.73781 5 7.72601 5H22.6301ZM35.278 13.7505L43.1809 21.6534C43.4406 21.9129 43.6466 22.2211 43.7871 22.5602C43.9277 22.8994 44 23.2629 44 23.6301C44 23.9972 43.9277 24.3607 43.7871 24.6999C43.6466 25.039 43.4406 25.3472 43.1809 25.6067L35.278 33.5096C34.754 34.0338 34.0432 34.3284 33.302 34.3286C32.5608 34.3288 31.8499 34.0345 31.3256 33.5105C30.8014 32.9865 30.5068 32.2757 30.5066 31.5345C30.5064 30.7933 30.8007 30.0824 31.3247 29.5581L34.4303 26.4506H17.9725C17.2782 26.4507 16.6086 26.1921 16.0944 25.7255C15.5802 25.2588 15.2582 24.6174 15.1911 23.9263L15.178 23.658C15.1781 22.9633 15.4368 22.2936 15.9039 21.7793C16.371 21.2651 17.0128 20.9432 17.7043 20.8765L17.9725 20.8635H34.4862L31.3247 17.702C30.8007 17.1777 30.5064 16.4668 30.5066 15.7256C30.5068 14.9844 30.8014 14.2736 31.3256 13.7496C31.8499 13.2256 32.5608 12.9313 33.302 12.9315C34.0432 12.9317 34.754 13.2263 35.278 13.7505Z\" />,\n 'logout'\n);\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport Avatar from 'components/Avatar';\nimport Typography from 'components/Typography';\nimport './WorkspaceItem.scss';\nimport IconCheckMark from 'components/Svg/icons/IconCheckMark';\n\ntype Props = {\n logo?: string;\n name: string;\n namespace: string;\n onClick: () => void;\n active?: boolean;\n};\n\nconst WorkspaceItem: React.FC<Props> = (props) => {\n const { namespace, logo, name, onClick, active } = props;\n return (\n <div\n className={classNames('TDB-WorkspaceItem', {\n 'TDB-WorkspaceItem--active': active,\n })}\n onClick={onClick}\n data-testid=\"TDB-WorkspaceItem\"\n >\n <div className=\"TDB-WorkspaceItem__content\">\n <Avatar\n className=\"mr-1\"\n namespace={namespace}\n size=\"small\"\n logo={logo}\n />\n <div>\n <Typography as=\"p\" fontSize=\"body-md\" fontWeight=\"600\">\n {name}\n </Typography>\n <Typography variant=\"secondary\" fontSize=\"body-xs\" fontWeight=\"500\">\n @{namespace}\n </Typography>\n </div>\n </div>\n {active && <IconCheckMark colorToken=\"color-text-default\" size={16} />}\n </div>\n );\n};\n\nexport default WorkspaceItem;\n","import WorkspaceItem from './WorkspaceItem';\n\nexport default WorkspaceItem;\n","import WorkspaceOption from './WorkspaceOption';\n\nexport default WorkspaceOption;\n","import * as React from 'react';\nimport { Icon } from 'components/Svg';\nimport Typography from 'components/Typography';\nimport './WorkspaceOption.scss';\n\ntype Props = {\n icon: Icon;\n rightIcon?: Icon;\n label: string;\n onClick?: () => void;\n};\n\nconst WorkspaceOption: React.FC<Props> = (props) => {\n const { icon: MainIcon, rightIcon: SecondaryIcon, label, onClick } = props;\n return (\n <div className=\"TDB-WorkspaceOption\" onClick={onClick}>\n <div className=\"TDB-WorkspaceOption__content\">\n <MainIcon size={16} colorToken=\"color-text-secondary-default\" />\n <Typography fontWeight=\"600\" fontSize=\"body-md\" variant=\"default\">\n {label}\n </Typography>\n </div>\n {SecondaryIcon && (\n <SecondaryIcon size={16} colorToken=\"color-text-secondary-default\" />\n )}\n </div>\n );\n};\n\nexport default WorkspaceOption;\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path d=\"M25 4C14 4 5 13 5 24C5 35 14 44 25 44C36 44 45 35 45 24C45 13 36 4 25 4ZM25 38V10C32.7059 10 39 16.2941 39 24C39 31.7059 32.7059 38 25 38Z\" />,\n 'theme'\n);\n","import * as React from 'react';\nimport Dialog from 'components/Dialog';\nimport WorkspaceOption from '../WorkspaceOption';\nimport IconTheme from 'components/Svg/icons/IconTheme';\nimport IconCarretRight from 'components/Svg/icons/IconCarretRight';\nimport { Icon } from 'components/Svg';\nimport Typography from 'components/Typography';\nimport IconCheckMark from 'components/Svg/icons/IconCheckMark';\nimport { Theme } from 'store/ThemeContext';\nimport useTheme from 'hooks/useTheme';\nimport { capitalizeFirstLetter } from 'utils/helpers/string';\nimport IconSun from 'components/Svg/icons/IconSun';\nimport IconMoon from 'components/Svg/icons/IconMoon';\nimport './WorkspaceThemeSelector.scss';\n\nconst WorkspaceThemeSelector: React.FC = () => {\n return (\n <Dialog\n className=\"TDB-WorkspaceThemeSelector\"\n strategy=\"fixed\"\n trigger=\"hover\"\n interactive\n content={\n <div className=\"TDB-WorkspaceThemeSelector__menu\">\n <WorkspaceThemeItem icon={IconSun} theme={Theme.Light} />\n <WorkspaceThemeItem icon={IconMoon} theme={Theme.Dark} />\n <WorkspaceThemeItem icon={IconTheme} theme={Theme.System} />\n </div>\n }\n placement=\"right-end\"\n >\n <WorkspaceOption\n label=\"Theme\"\n icon={IconTheme}\n rightIcon={IconCarretRight}\n />\n </Dialog>\n );\n};\n\nexport default WorkspaceThemeSelector;\n\ntype ThemeItemProps = {\n theme: Theme;\n icon: Icon;\n onClick?: () => void;\n};\n\nconst WorkspaceThemeItem: React.FC<ThemeItemProps> = (props) => {\n const { icon: MainIcon, theme, onClick } = props;\n const { themeTabSelected: currentTheme, changeTheme } = useTheme();\n const active = currentTheme === theme;\n\n return (\n <div\n onClick={() => {\n changeTheme(theme);\n onClick?.();\n }}\n className=\"TDB-WorkspaceThemeItem\"\n >\n <div className=\"TDB-WorkspaceThemeItem__content\">\n <MainIcon size={16} />\n <Typography>{capitalizeFirstLetter(theme)}</Typography>\n </div>\n {active && <IconCheckMark colorToken=\"color-text-default\" size={16} />}\n </div>\n );\n};\n","import WorkspaceThemeSelector from './WorkspaceThemeSelector';\n\nexport default WorkspaceThemeSelector;\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport useEvent from 'hooks/useEvent';\nimport { EventTypes } from 'utils/helpers/eventBus';\nimport useOnClickOutside from 'hooks/useOnClickOutside';\nimport classNames from 'classnames';\nimport useGetOrganizations from 'hooks/api/Organizations/useGetOrganizations';\nimport { useUserContext } from 'store/UserContext';\nimport {\n NamespaceType,\n Organization,\n OrganizationApi_fetchAllOrganizations$Path,\n} from 'api-client';\nimport useModal from 'store/ModalStore';\nimport toggleNamespaceSelector from 'utils/helpers/toggleWorkspaceMenu';\nimport IconLogout from 'components/Svg/icons/IconLogout';\nimport useKeyDown from 'hooks/useKeyDown';\nimport useWorkspaceStore, {\n WorkspaceSelected,\n} from 'store/WorkspaceSelectedStore';\nimport normalizeOrganizationRole from 'utils/helpers/normalizeOrganizationRole';\nimport InputText from 'components/Form/InputText/InputText';\nimport IconMagnifyingGlass from 'components/Svg/icons/IconMagnifyingGlass';\nimport { prepend } from 'ramda';\nimport history from 'utils/helpers/history';\nimport { authLinks, settingsLinks } from 'utils/links';\nimport queryClient from 'utils/helpers/queryClient';\nimport Avatar from 'components/Avatar';\nimport Typography from 'components/Typography';\nimport WorkspaceItem from './WorkspaceItem';\nimport WorkspaceOption from './WorkspaceOption';\nimport IconSettings from 'components/Svg/icons/IconSettings';\nimport IconPlus from 'components/Svg/icons/IconPlus';\nimport WorkspaceThemeSelector from './WorkspaceThemeSelector';\nimport MagnifyingGlass from './icons/Search.png';\nimport './WorkspaceMenu.scss';\nimport isEnterpriseEnv from 'utils/helpers/isEnterpriseEnv';\n\ntype WorkspaceMenuProps = {\n organizations: Organization[];\n isToggled: boolean;\n};\n\ninterface Workspace {\n type: NamespaceType;\n label: string;\n sublabel: string;\n logo: string | undefined;\n id: string;\n namespace: string;\n name: string;\n email?: string;\n}\n\nexport const WorkspaceMenu: React.FC<WorkspaceMenuProps> = (props) => {\n const { organizations, isToggled } = props;\n const wrapperRef = useRef<HTMLDivElement>(null);\n const [filter, setFilter] = useState('');\n\n useOnClickOutside(wrapperRef, () => {\n toggleNamespaceSelector(false);\n });\n\n const { user, isInPaidTier } = useUserContext();\n\n const showCreateOrganizationModal = useModal(\n (store) => store.showCreateOrganizationModal\n );\n const flushModals = useModal((store) => store.flushModals);\n\n // Hide dialog and show organization modal\n const handleCreateOrganization = () => {\n showCreateOrganizationModal({\n onSuccess: (org: Organization) => {\n setWorkspaceSelected({\n id: org.id,\n namespace: org.name,\n namespaceType: NamespaceType.Organization,\n // Save the indicator that the organization is newly created\n // This is used by organization onboarding component to show the \"Congratulations\" modal\n state: {\n isNewOrganization: true,\n },\n });\n flushModals();\n },\n });\n toggleNamespaceSelector(false);\n };\n\n // Hide dialog and logout\n const handleLogoutClick = () => {\n history.push(authLinks.logout());\n toggleNamespaceSelector(false);\n };\n\n // Hide namespace dialog on esc\n useKeyDown(\n 'Escape',\n () => {\n toggleNamespaceSelector(false);\n },\n [toggleNamespaceSelector]\n );\n const workspaceSelected = useWorkspaceStore(\n (state) => state.workspaceSelected\n );\n const setWorkspaceSelected = useWorkspaceStore(\n (state) => state.setWorkspaceSelected\n );\n\n const handleNamespaceClick = (ws: WorkspaceSelected) => {\n // Clear all query cache on namespace change\n queryClient.clear();\n setWorkspaceSelected(ws);\n toggleNamespaceSelector(false);\n };\n\n const workspaces: Workspace[] = React.useMemo(() => {\n const userWorkspace: Workspace = {\n type: NamespaceType.User,\n label: 'PRIMARY',\n sublabel: 'ACCOUNT',\n logo: user.logo,\n id: user.id,\n email: user.email,\n namespace: user.username,\n name: user.name || '',\n };\n\n const orgWorkspaces = organizations.map((org) => ({\n type: NamespaceType.Organization,\n label: 'ORGANIZATION',\n sublabel: normalizeOrganizationRole(org.role),\n logo: org.logo,\n id: org.id,\n namespace: org.name,\n email: undefined,\n name: org.name,\n }));\n\n return prepend(userWorkspace, orgWorkspaces);\n }, [user.logo, user.id, user.email, user.username, user.name, organizations]);\n\n const filteredWorkspaces = React.useMemo(() => {\n const filterLowerCased = filter.toLowerCase();\n\n return workspaces.filter(\n (w) =>\n w.name.toLowerCase().includes(filterLowerCased) ||\n w.namespace.toLowerCase().includes(filterLowerCased)\n );\n }, [filter, workspaces]);\n\n useEffect(() => {\n if (!isToggled) {\n // Reset filter when menu is hidden\n setFilter('');\n } else {\n // Invalidate org queries when dialog opens\n queryClient.invalidateQueries([\n OrganizationApi_fetchAllOrganizations$Path,\n ]);\n }\n }, [isToggled]);\n\n return (\n <div\n ref={wrapperRef}\n className=\"TDB-WorkspaceMenu\"\n data-testid=\"TDB-WorkspaceMenu\"\n >\n <div className=\"TDB-WorkspaceMenu__header\">\n <Avatar\n rounded\n namespace={workspaceSelected?.namespace as string}\n logo={workspaceSelected?.logo}\n size=\"xl\"\n className=\"TDB-WorkspaceMenu__avatar\"\n />\n {workspaceSelected?.name && (\n <Typography\n as=\"p\"\n className=\"mb-half\"\n fontSize=\"body-md\"\n fontWeight=\"600\"\n >\n {workspaceSelected.name}\n </Typography>\n )}\n {workspaceSelected?.namespace && (\n <Typography variant=\"secondary\" fontSize=\"body-sm\" fontWeight=\"500\">\n {workspaceSelected.namespace}\n </Typography>\n )}\n </div>\n {organizations.length > 3 && (\n <InputText\n Icon={IconMagnifyingGlass}\n type=\"search\"\n size=\"small\"\n className=\"TDB-WorkspaceMenu__search\"\n placeholder=\"Search namespace\"\n onChange={(e) => setFilter(e.currentTarget.value)}\n />\n )}\n <div\n className={classNames('TDB-WorkspaceMenu__list', {\n 'TDB-WorkspaceMenu__list--overflow': filteredWorkspaces.length > 7,\n })}\n >\n <div className=\"TDB-WorkspaceMenu__inner-list\">\n {filteredWorkspaces.map((workspace) => {\n return (\n <WorkspaceItem\n key={workspace.id}\n name={workspace.name}\n namespace={workspace.namespace}\n logo={workspace.logo}\n active={workspaceSelected?.id === workspace.id}\n onClick={() => {\n handleNamespaceClick({\n id: workspace.id,\n name: workspace.name,\n namespaceType: workspace.type,\n logo: workspace.logo,\n namespace: workspace.namespace,\n email: workspace.email,\n });\n }}\n />\n );\n })}\n </div>\n {!filteredWorkspaces.length && (\n <div className=\"TDB-WorkspaceMenu__placeholder\">\n <Typography\n fontSize=\"heading-md\"\n fontWeight=\"700\"\n color=\"text-main-primary\"\n align=\"center\"\n as=\"h5\"\n className=\"mb-2\"\n >\n No workspaces found\n </Typography>\n <Typography\n align=\"center\"\n fontSize=\"body-md\"\n color=\"text-main-primary\"\n as=\"p\"\n >{`We can't find any namespace matching \"${filter}\"`}</Typography>\n <img\n className=\"TDB-WorkspaceMenu__icon\"\n src={MagnifyingGlass}\n alt=\"Magnifying glass\"\n />\n </div>\n )}\n </div>\n <div className=\"TDB-WorkspaceMenu__main\">\n <WorkspaceOption\n label=\"Settings\"\n icon={IconSettings}\n onClick={() => {\n history.push(settingsLinks.root());\n toggleNamespaceSelector(false);\n }}\n />\n <WorkspaceThemeSelector />\n </div>\n <div className=\"TDB-WorkspaceMenu__footer\">\n {(isInPaidTier || isEnterpriseEnv()) && (\n <WorkspaceOption\n label=\"Create organization\"\n icon={IconPlus}\n onClick={handleCreateOrganization}\n />\n )}\n <WorkspaceOption\n label=\"Logout\"\n icon={IconLogout}\n onClick={handleLogoutClick}\n />\n </div>\n </div>\n );\n};\n\nconst WorkspaceMenuContextProvider: React.FC = () => {\n const [, orgResponse] = useGetOrganizations();\n const isToggled: boolean = useEvent(EventTypes.TOGGLE_WORKSPACE_MENU);\n\n const organizations = useMemo(() => {\n return orgResponse?.data || [];\n }, [orgResponse]);\n\n if (!isToggled) {\n return null;\n }\n\n return (\n <>\n <div className=\"TDB-WorkspaceMenuLayer\" />\n <WorkspaceMenu isToggled={isToggled} organizations={organizations} />\n </>\n );\n};\n\nexport default WorkspaceMenuContextProvider;\n","import WorkspaceMenu from './WorkspaceMenu';\n\nexport default WorkspaceMenu;\n","import { useEffect, useState } from 'react';\n\nfunction useNetwork() {\n const [isOnline, setNetwork] = useState(window.navigator.onLine);\n const updateNetwork = () => {\n setNetwork(window.navigator.onLine);\n };\n useEffect(() => {\n window.addEventListener('offline', updateNetwork);\n window.addEventListener('online', updateNetwork);\n\n return () => {\n window.removeEventListener('offline', updateNetwork);\n window.removeEventListener('online', updateNetwork);\n };\n });\n return isOnline;\n}\n\nexport default useNetwork;\n","import useNetwork from './useNetwork';\n\nexport default useNetwork;\n","const inIframe = (): boolean => {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n};\n\nexport default inIframe;\n","import inIframe from './inIframe';\n\nexport default inIframe;\n","import useDocumentVisibility from './useDocumentVisibility';\n\nexport default useDocumentVisibility;\n","import { useEffect, useState } from 'react';\n\nconst useDocumentVisibility = () => {\n const [documentIsHidden, setHidden] = useState(document.hidden);\n\n const onVisibilityChange = () => setHidden(document.hidden);\n useEffect(() => {\n document.addEventListener('visibilitychange', onVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n });\n\n return !documentIsHidden;\n};\n\nexport default useDocumentVisibility;\n","import useShouldRenderHiddenIframe from './useShouldRenderHiddenIframe';\n\nexport default useShouldRenderHiddenIframe;\n","import React from 'react';\nimport useIsUserInJupyterPage from 'hooks/jupyter/useIsUserInJupyterPage';\nimport useModal, { Modals } from 'store/ModalStore';\nimport useJupyter, { JupyterStatus } from 'store/JupyterStore';\nimport inIframe from 'utils/helpers/inIframe';\nimport useDocumentVisibility from 'hooks/useDocumentVisibility';\n\n/**\n * Hook that returns if the hidden jupyter iframe should render or not.\n * We hide this hidden iframe either in development mode, or when there is already a jupyter iframe\n * (e.g. when user opens a modal to select jupyter server to launch).\n * In the latter, we avoid rendering 2 iframes to fix issues with Oauth Jupyterhub login flows happening in parallel\n * and as a result jupyterhub returns \"Oauth state mismatch\" error.\n */\nconst useShouldRenderHiddenIframe = () => {\n const { userIsInJupyterNotebookOrDashaboard } = useIsUserInJupyterPage();\n const jupyterStatus = useJupyter((state) => state.status);\n const documentVisible = useDocumentVisibility();\n const modals = useModal((state) => state.modals);\n const pageIsRenderedInsideIframe = inIframe();\n /**\n * One of the modals that enable user to select a server profile to launch, is currently active\n */\n const modalLaunchServerIsActive = React.useMemo(() => {\n return modals.some(\n (m) =>\n m.name === Modals.ModalLaunchServer ||\n m.name === Modals.ModalSelectRegionAndServerProfile ||\n m.name === Modals.ModalSelectRegion\n );\n }, [modals]);\n\n if (\n pageIsRenderedInsideIframe ||\n (userIsInJupyterNotebookOrDashaboard &&\n jupyterStatus === JupyterStatus.Running) ||\n modalLaunchServerIsActive ||\n !documentVisible\n ) {\n return false;\n }\n\n return true;\n};\n\nexport default useShouldRenderHiddenIframe;\n","import { useEffect } from 'react';\nimport useJupyter, {\n JupyterStatus,\n userHasNoCreditsSelector,\n} from 'store/JupyterStore';\nimport useJupyterOutgoingMessages from '../useJupyterOutgoingMessages';\n\nexport interface AutoLaunchOptions {\n fileProperties?: Record<string, string>;\n iframe: React.MutableRefObject<HTMLIFrameElement | null>;\n enabled: boolean;\n}\n\n/**\n * Hook that sends a message to the jupyterlab iframe\n * in order to autolaunch a notebook. Jupyterlab upon receiving this message,\n * selects the appropriate server profile & image and clicks the submit button\n * instantaneously without the user having to see the spawn page at all.\n *\n * Before sending the message we have to check a few parameters,\n * e.g. we need to wait for spawn page to load, check if we are in autolaunching mode\n *\n * Example of a message sent\n * {\n * action: 'TILEDB_AUTOLOAD_IMAGE',\n * payload: { image: 'genomics_geospatial', profile: 'large' },\n * }\n */\nconst useAutoLaunch = (options: AutoLaunchOptions) => {\n const { enabled, iframe, fileProperties } = options;\n const setActiveServerImage = useJupyter(\n (state) => state.setActiveServerImage\n );\n const setLaunchingProgress = useJupyter(\n (state) => state.setLaunchingProgress\n );\n const { selectServerAndImageProfilesAndSubmit } =\n useJupyterOutgoingMessages(iframe);\n const status = useJupyter((state) => state.status);\n const userHasNoCredits = useJupyter(userHasNoCreditsSelector);\n useEffect(() => {\n if (\n !userHasNoCredits &&\n status === JupyterStatus.Idle &&\n enabled &&\n fileProperties?.size &&\n fileProperties.image\n ) {\n selectServerAndImageProfilesAndSubmit(fileProperties, () => {\n setLaunchingProgress(0);\n setActiveServerImage(fileProperties.image);\n });\n }\n }, [\n enabled,\n fileProperties,\n selectServerAndImageProfilesAndSubmit,\n setActiveServerImage,\n setLaunchingProgress,\n status,\n userHasNoCredits,\n ]);\n};\n\nexport default useAutoLaunch;\n","import useAutoLaunch from './useAutoLaunch';\n\nexport default useAutoLaunch;\n","import { useCallback, useEffect } from 'react';\nimport useJupyter, {\n JupyterStatus,\n QueuedTask,\n TaskType,\n} from 'store/JupyterStore';\nimport useModal from 'store/ModalStore';\n\nconst useListenForQueuedTasksAndHandle = () => {\n const status = useJupyter((state) => state.status);\n const queuedTasks = useJupyter((state) => state.queuedTasks);\n const clearQueuedTasks = useJupyter((state) => state.clearQueuedTasks);\n const showSelectRegionAndServerProfileModal = useModal(\n (state) => state.showSelectRegionAndServerProfileModal\n );\n\n const handleQueuedTask = useCallback(\n (task: QueuedTask) => {\n if (task.action === TaskType.LaunchNotebook) {\n const { payload, callback } = task;\n\n showSelectRegionAndServerProfileModal({\n image: payload?.image,\n region: payload?.region,\n size: payload?.size,\n });\n callback?.();\n }\n },\n [showSelectRegionAndServerProfileModal]\n );\n\n useEffect(() => {\n if (status === JupyterStatus.Idle) {\n queuedTasks.forEach(handleQueuedTask);\n\n clearQueuedTasks();\n }\n }, [clearQueuedTasks, handleQueuedTask, queuedTasks, status]);\n};\n\nexport default useListenForQueuedTasksAndHandle;\n","import useListenForQueuedTasksAndHandle from './useListenForQueuedTasksAndHandle';\n\nexport default useListenForQueuedTasksAndHandle;\n","import HiddenJupyterIframe from './HiddenJupyterIframe';\n\nexport default HiddenJupyterIframe;\n","import * as React from 'react';\nimport useJupyter, { JupyterStatus } from 'store/JupyterStore';\nimport useNetwork from 'hooks/useNetwork';\nimport debounce from 'utils/helpers/debounce';\nimport useShouldRenderHiddenIframe from './useShouldRenderHiddenIframe';\nimport useAutoLaunch from 'hooks/jupyter/useAutoLaunch';\nimport { NotebookSize, NotebookType } from 'api-client';\nimport useOnJupyterIncomingMessage from 'hooks/jupyter/useOnJupyterIncomingMessage';\nimport useWaitForJupyterhubToBeReadyAfterShutdown from 'hooks/jupyter/useWaitForJupyterhubToBeReadyAfterShutdown';\nimport './HiddenJupyterIframe.scss';\nimport useListenForQueuedTasksAndHandle from './useListenForQueuedTasksAndHandle';\n\ntype Props = {};\n\nconst HiddenJupyterIframe: React.FC<Props> = (props) => {\n const {\n status,\n setStatus,\n setLaunchingProgress,\n server,\n image,\n setIdle,\n jupyterURL,\n } = useJupyter((state) => ({\n status: state.status,\n server: state.server,\n image: state.image,\n setStatus: state.setStatus,\n setIdle: state.setIdle,\n setLaunchingProgress: state.setLaunchingProgress,\n jupyterURL: state.jupyterURL,\n }));\n\n const network = useNetwork();\n const iframe = React.useRef<HTMLIFrameElement | null>(null);\n const errorsEncountered = React.useRef(0);\n const [iframeKey, setIframeKey] = React.useState(0);\n const errorsEncounteredFromService = React.useRef(0);\n\n const reRenderHiddenIframeDebounced = React.useRef(\n debounce(() => setIframeKey((k) => k + 1), 8_000, true)\n );\n const onError = React.useCallback(() => {\n /**\n * Upon error retry (refresh iframe), if we errors\n * persist. update status to ServiceUnavailable\n */\n reRenderHiddenIframeDebounced.current();\n\n errorsEncounteredFromService.current++;\n if (errorsEncounteredFromService.current > 15) {\n setStatus(JupyterStatus.ServiceUnavailable);\n }\n }, [setStatus, errorsEncounteredFromService, reRenderHiddenIframeDebounced]);\n\n React.useEffect(() => {\n if (network) {\n /**\n * Update iframe to refresh jupyter upon reconnection\n */\n reRenderHiddenIframeDebounced.current();\n }\n }, [network, reRenderHiddenIframeDebounced]);\n\n useOnJupyterIncomingMessage({\n onJupyterlabLaunching: () => {\n setStatus(JupyterStatus.Running);\n errorsEncountered.current = 0;\n },\n onJupyterSpawnPageReady: () => {\n errorsEncountered.current = 0;\n setIdle();\n },\n onJupyterNotRunning: () => {\n reRenderHiddenIframeDebounced.current();\n },\n onJupyterProgress: (progressNumber) => {\n /**\n * In case the iframe re-renders we might get a 0 progress message, that is sent on page load.\n * Ignore that first progress and use the current progress instead\n */\n if (progressNumber) {\n setLaunchingProgress(progressNumber);\n }\n },\n onJupyterError: () => {\n reRenderHiddenIframeDebounced.current();\n // Upon receiving an error we retry, after 35 retries we set status as Error\n errorsEncountered.current++;\n if (errorsEncountered.current > 35) {\n setStatus(JupyterStatus.ErrorEncountered);\n }\n },\n });\n\n /**\n * Re-render periodically the hidden iframe until it's ready to launch a new server (Spawn page has loaded).\n */\n useWaitForJupyterhubToBeReadyAfterShutdown({\n reRenderIframe: reRenderHiddenIframeDebounced.current,\n callback: () => {\n errorsEncountered.current = 0;\n setIdle();\n },\n });\n\n useAutoLaunch({\n enabled: Boolean(status === JupyterStatus.Idle),\n iframe: iframe,\n fileProperties: {\n image: image as NotebookType,\n size: server as NotebookSize,\n },\n });\n\n /**\n * Listen for Jupyter queued tasks and handle them,\n * e.g. Prompt a user with a image & server selection modal when Jupyter is ready to launch.\n */\n useListenForQueuedTasksAndHandle();\n\n /**\n * We don't need to render for this iframe to listen to events,\n * if user is already in the /server page or one of the modals which render jupyterhub are open.\n */\n const shouldRenderIframe = useShouldRenderHiddenIframe();\n\n if (!shouldRenderIframe) {\n return null;\n }\n\n return (\n <iframe\n className=\"TDB-HiddenJupyterIframe\"\n ref={iframe}\n title=\"hidden jupyter\"\n key={iframeKey}\n onErrorCapture={onError}\n src={jupyterURL}\n />\n );\n};\n\nexport default HiddenJupyterIframe;\n","import isAxiosError from '../isAxiosError';\n\nconst errorHasStatusCode = (statusCode: number, err: unknown): boolean => {\n if (isAxiosError(err)) {\n return err?.response?.status === statusCode;\n }\n return false;\n};\n\nexport default errorHasStatusCode;\n","import errorHasStatusCode from './errorHasStatusCode';\n\nexport default errorHasStatusCode;\n","import usePollingNotebookStatus from './usePollingNotebookStatus';\n\nexport default usePollingNotebookStatus;\n","import useGetNotebookStatus from 'hooks/api/Notebooks/useGetNotebookStatus';\nimport React, { useRef } from 'react';\nimport { useUserContext } from 'store/UserContext';\nimport errorHasStatusCode from 'utils/helpers/errorHasStatusCode';\nimport useJupyter, {\n JupyterStatus,\n notebookStatusSelector,\n} from 'store/JupyterStore';\nimport { AxiosError } from 'axios';\nimport { ModelError, PodStatus } from 'api-client';\n\ndeclare const global: {\n __DEV__: boolean;\n};\n\nconst usePollingNotebookStatus = () => {\n const shouldPingForStatusRef = useRef(!global.__DEV__); // In DEV mode we shouldn't call /status endpoint.\n const { user } = useUserContext();\n const {\n status,\n setNotebookStatuses,\n setNotebookStatusError,\n setNotebookStatusLoading,\n shutDownJupyterNotebook,\n setSelectedRegion,\n setStatus,\n } = useJupyter((state) => ({\n status: state.status,\n setStatus: state.setStatus,\n shutDownJupyterNotebook: state.shutDownJupyterNotebook,\n setNotebookStatuses: state.setNotebookStatuses,\n setNotebookStatusError: state.setNotebookStatusError,\n setNotebookStatusLoading: state.setNotebookStatusLoading,\n setSelectedRegion: state.setSelectedRegion,\n }));\n\n const [, response, error, loading] = useGetNotebookStatus(\n {\n namespace: user.username,\n },\n {\n noSnackbar: true,\n },\n {\n refetchInterval: 10_000,\n /**\n * Set retries to zero, otherwise react-query won't show errors until\n * it retries for certain amount (3 is the default).\n */\n retry: 0,\n refetchIntervalInBackground: true,\n enabled: shouldPingForStatusRef.current,\n }\n );\n\n /**\n * Stop pinging for notebook status if the user has been logged out (token expired).\n * If user leaves the tab open for more than 8 hours, token expires.\n */\n React.useEffect(() => {\n if (errorHasStatusCode(403, error)) {\n shouldPingForStatusRef.current = false;\n }\n }, [error]);\n\n const notebookStatus = useJupyter(notebookStatusSelector);\n\n /**\n * If selected region is shutting down, update store's status to \"ShuttingDown\"\n */\n React.useEffect(() => {\n if (\n status !== JupyterStatus.ShuttingDown &&\n notebookStatus?.pod_status === PodStatus.TERMINATING\n ) {\n shutDownJupyterNotebook(notebookStatus.region);\n }\n }, [\n notebookStatus?.pod_status,\n notebookStatus?.region,\n shutDownJupyterNotebook,\n status,\n ]);\n\n React.useEffect(() => {\n if (response?.data.length && !error) {\n setNotebookStatuses(response?.data);\n\n /**\n * If there is only 1 region currently running and we don't launch another one, set that as active\n * During launching we want to wait for the server to start and not switch to the new region.\n */\n if (\n response.data.length === 1 &&\n response.data[0].region &&\n response.data[0].pod_status !== PodStatus.TERMINATING &&\n status !== JupyterStatus.Launching\n ) {\n setSelectedRegion(response.data[0].region);\n }\n } else {\n setNotebookStatuses([]);\n }\n }, [\n response,\n setNotebookStatuses,\n setSelectedRegion,\n setStatus,\n status,\n error,\n ]);\n\n React.useEffect(() => {\n setNotebookStatusLoading(loading);\n }, [loading, setNotebookStatusLoading]);\n\n React.useEffect(() => {\n setNotebookStatusError(error as AxiosError<ModelError> | undefined);\n }, [error, setNotebookStatusError]);\n};\n\nexport default usePollingNotebookStatus;\n","import JupyterContainer from './JupyterContainer';\n\nexport default JupyterContainer;\n","import * as React from 'react';\nimport HiddenJupyterIframe from './HiddenJupyterIframe';\nimport useJupyter, { JupyterStatus } from 'store/JupyterStore';\nimport useSnackbar from 'store/SnackbarStore';\nimport usePollingNotebookStatus from 'hooks/jupyter/usePollingNotebookStatus';\nimport './JupyterContainer.scss';\n\ntype Props = {};\n\nconst JupyterContainer: React.FC<Props> = (props) => {\n const showSnackbar = useSnackbar((state) => state.showSnackbar);\n const { status, progress, server, image } = useJupyter((state) => ({\n status: state.status,\n progress: state.progress,\n server: state.server,\n image: state.image,\n }));\n /**\n * User would have started the launching process by selecting an image & server profile.\n */\n const userHasStartedLaunchingProcess = server && image;\n usePollingNotebookStatus();\n\n React.useEffect(() => {\n if (!userHasStartedLaunchingProcess) {\n return;\n }\n\n if (status === JupyterStatus.Running) {\n showSnackbar({\n title: 'Application launched',\n variant: 'success',\n description: 'The application will appear on your screen momentarily.',\n });\n }\n }, [status, progress, userHasStartedLaunchingProcess, showSnackbar]);\n\n return (\n <div className=\"TDB-JupyterContainer\">\n <HiddenJupyterIframe />\n </div>\n );\n};\n\nexport default JupyterContainer;\n","import isJupyterDisabled from './isJupyterDisabled';\n\nexport default isJupyterDisabled;\n","const isJupyterDisabled = () => {\n return global.JUPYTER_DISABLED === 'true';\n};\n\nexport default isJupyterDisabled;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Indicator_container__ZVWB+\",\"active\":\"Indicator_active__-0xaT\",\"inner\":\"Indicator_inner__Ssg4l\",\"info\":\"Indicator_info__g1Oh1\",\"warning\":\"Indicator_warning__WjJ3Z\"};","import Indicator from './Indicator';\n\nexport default Indicator;\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport styles from './Indicator.module.scss';\n\ntype Props = {\n variant: 'info' | 'warning';\n className?: string;\n active: boolean;\n};\n\nconst Indicator: React.FC<Props> = (props) => {\n const { variant, className, active } = props;\n return (\n <div\n className={classNames(className, styles.container, {\n [styles.active]: active,\n })}\n >\n <div className={classNames(styles.inner, styles[variant])}></div>\n </div>\n );\n};\n\nexport default Indicator;\n","import MainMenuButton from './MainMenuButton';\n\nexport default MainMenuButton;\n","import classNames from 'classnames';\nimport './MainMenuButton.scss';\nimport { Icon } from 'components/Svg';\nimport React from 'react';\nimport Typography from 'components/Typography';\nimport Indicator from './Indicator';\n\ninterface MainButtonProps {\n to?: string;\n icon: Icon;\n text: string;\n active: boolean;\n onClick?: () => void;\n indicatorVariant?: 'info' | 'warning';\n dataTestId?: string;\n basicTourStep?: string;\n organizationBasicTourStep?: string;\n}\n\nconst MainMenuButton: React.FC<MainButtonProps> = (props) => {\n const {\n to,\n icon: Icon,\n text,\n active,\n onClick,\n dataTestId,\n indicatorVariant,\n basicTourStep,\n organizationBasicTourStep,\n } = props;\n\n return (\n <Typography\n basicTourStep={basicTourStep}\n organizationBasicTourStep={organizationBasicTourStep}\n onClick={onClick}\n to={to}\n className={classNames('TDB-MainMenuButton', {\n 'TDB-MainMenuButton--active': active,\n })}\n dataTestId={dataTestId}\n >\n <div className=\"TDB-MainMenuButton__tile\">\n <Icon className=\"TDB-MainMenuButton__icon\" size=\"3rem\" />\n </div>\n <Typography\n className=\"TDB-MainMenuButton__text\"\n align=\"center\"\n fontWeight=\"600\"\n variant=\"app-default\"\n fontSize=\"body-xxs\"\n >\n {text}\n </Typography>\n {indicatorVariant && (\n <Indicator\n className=\"TDB-MainMenuButton__indicator\"\n variant={indicatorVariant}\n active={active}\n />\n )}\n </Typography>\n );\n};\n\nexport default MainMenuButton;\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M23.9999 4L4 18.9999V43.9998H17.4999V33.4999C17.4999 29.8988 20.3989 26.9998 24 26.9998C27.6011 26.9998 30.5001 29.8988 30.5001 33.4999V43.9998H44V18.9999L23.9999 4Z\" />\n </>,\n 'home'\n);\n","import './NamespaceSelector.scss';\nimport React from 'react';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport toggleNamespaceSelector from 'utils/helpers/toggleWorkspaceMenu';\nimport useGetOrganizations from 'hooks/api/Organizations/useGetOrganizations';\nimport Avatar from 'components/Avatar';\n\nconst NamespaceSelector: React.FC = () => {\n const { workspace } = useWorkspaceContext();\n const [, orgResponse] = useGetOrganizations();\n\n if (!workspace) {\n return null;\n }\n\n const organizations = orgResponse?.data || [];\n\n return (\n <button\n className=\"TDB-NamespaceSelector\"\n onClick={() => toggleNamespaceSelector(true)}\n data-testid=\"namespace-selector\"\n basic-tour-step=\"5\"\n >\n <Avatar\n namespace={workspace.namespace}\n className=\"TDB-NamespaceSelector__avatar\"\n logo={workspace.logo}\n size=\"small\"\n />\n {organizations.length > 0 && (\n <div\n className=\"TDB-NamespaceSelector__sub-card\"\n data-testid=\"multi-namespace-indicator\"\n />\n )}\n {organizations.length > 1 && (\n <div\n className=\"TDB-NamespaceSelector__sub-card TDB-NamespaceSelector__sub-card--2\"\n data-testid=\"multi-namespace-indicator-2\"\n />\n )}\n </button>\n );\n};\n\nexport default NamespaceSelector;\n","import NamespaceSelector from './NamespaceSelector';\n\nexport default NamespaceSelector;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"HelpDialog_container__y2ttZ\",\"item\":\"HelpDialog_item__-iT6s\",\"itemLabel\":\"HelpDialog_itemLabel__8TFJU\"};","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <>\n <path d=\"M40.0584 16.4286C40.1156 16.6429 40.1441 16.8571 40.187 17.0714L40.2298 17.3V17.3286C40.3727 18.2857 40.4441 19.2286 40.4441 20.2143C40.4441 21.7 40.2727 23.1429 39.9441 24.5286C38.3156 31.5857 32.7441 37.1571 25.687 38.7857C24.3013 39.1143 22.8584 39.2857 21.3727 39.2857C20.4584 39.2857 19.5156 39.2143 18.5013 39.0571L17.987 39.1714C21.3727 41.3143 25.5013 42.1571 29.587 41.4143L41.1013 43.9714C41.2156 43.9857 41.3156 44 41.4156 44C41.8441 44 42.2441 43.8143 42.5156 43.4714C42.8584 43.0571 42.9441 42.4857 42.7156 42L39.687 35.1C41.7298 32.3429 42.8441 28.9571 42.8441 25.4714C42.8441 22.2143 41.8441 19.0571 40.0584 16.4286Z\" />\n <path d=\"M18.687 36.2C19.587 36.3429 20.4727 36.4286 21.3727 36.4286C30.3156 36.4286 37.587 29.1571 37.587 20.2143C37.587 19.3 37.5156 18.4286 37.3727 17.5571V17.5429C37.0156 15.4286 36.2441 13.4429 35.1584 11.6857C32.3013 7.07143 27.187 4 21.3727 4C12.4298 4 5.15841 11.2714 5.15841 20.2143C5.15841 23.7 6.2727 27.0857 8.31555 29.8429L5.2727 36.7286C5.05841 37.2286 5.14412 37.8 5.48698 38.2143C5.75841 38.5571 6.15841 38.7429 6.58698 38.7429C6.68698 38.7429 6.78698 38.7286 6.90127 38.7L15.1298 36.8857L18.4156 36.1571C18.5013 36.1714 18.6013 36.1857 18.687 36.2ZM28.287 18.7571C29.0727 18.7571 29.7156 19.4 29.7156 20.1857C29.7156 20.9714 29.0727 21.6143 28.287 21.6143C27.487 21.6143 26.8584 20.9714 26.8584 20.1857C26.8584 19.4 27.487 18.7571 28.287 18.7571ZM21.287 18.7571C22.0727 18.7571 22.7156 19.4 22.7156 20.1857C22.7156 20.9714 22.0727 21.6143 21.287 21.6143C20.487 21.6143 19.8584 20.9714 19.8584 20.1857C19.8584 19.4 20.487 18.7571 21.287 18.7571ZM14.287 21.6143C13.487 21.6143 12.8584 20.9714 12.8584 20.1857C12.8584 19.4 13.487 18.7571 14.287 18.7571C15.0727 18.7571 15.7156 19.4 15.7156 20.1857C15.7156 20.9714 15.0727 21.6143 14.287 21.6143Z\" />\n </>,\n 'chat'\n);\n","import React from 'react';\nimport { createSvgIcon } from '../Svg';\n\nexport default createSvgIcon(\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M25.2651 4.46169C27.7992 6.66673 33.8707 11.3776 40.1855 12.1651H40.1853C41.1877 12.2939 41.9324 13.139 41.8605 14.1554C41.0872 33.3289 28.4725 41.7484 24.9215 43.7531C24.3488 44.0823 23.6472 44.0823 23.0745 43.7531C19.5234 41.7624 6.9087 33.3428 6.13554 14.1554C6.10674 13.1387 6.85149 12.2939 7.85382 12.1651C14.1681 11.3776 20.2395 6.66673 22.7881 4.46169C23.4896 3.8461 24.5492 3.8461 25.2651 4.46169ZM14.512 23.9926C14.512 29.2475 18.7645 33.5004 24.0198 33.5004C29.275 33.5004 33.5276 29.2478 33.5276 23.9926C33.5276 18.7377 29.275 14.4848 24.0198 14.4848C18.7649 14.4848 14.512 18.7374 14.512 23.9926ZM22.5448 24.8518L28.2148 19.1814L30.2194 21.1717L24.5493 26.842L22.5731 28.8039L20.5829 26.8137L17.8195 24.0499L19.781 22.0884L22.5448 24.8518Z\"\n />,\n 'secure-shield'\n);\n","import { Icon } from 'components/Svg';\nimport IconDocumentation from 'components/Svg/icons/IconDocumentation';\nimport IconDollar from 'components/Svg/icons/IconDollar';\nimport React from 'react';\nimport { externalLinks } from 'utils/links';\nimport styles from './HelpDialog.module.scss';\nimport Typography from 'components/Typography';\nimport IconExternalLinkOutlined from 'components/Svg/icons/IconExternalLinkOutlined';\nimport IconChat from 'components/Svg/icons/IconChat';\nimport IconSparkles from 'components/Svg/icons/IconSparkles';\nimport IconSecureShield from 'components/Svg/icons/IconSecureShield';\nimport IconBook from 'components/Svg/icons/IconBook';\n\ninterface HelpDialogItemProps {\n label: string;\n icon: Icon;\n link: string;\n}\n\nconst HelpDialogItem: React.FC<HelpDialogItemProps> = (props) => {\n const { link, label, icon: Icon } = props;\n return (\n <a className={styles.item} target=\"_blank\" href={link} rel=\"noreferrer\">\n <div className={styles.itemLabel}>\n <Icon size=\"16px\" colorToken=\"color-text-secondary-default\" />\n <Typography fontSize=\"body-md\" fontWeight=\"500\" variant=\"secondary\">\n {label}\n </Typography>\n </div>\n <IconExternalLinkOutlined\n colorToken=\"color-icon-emphasis-default\"\n size=\"14px\"\n />\n </a>\n );\n};\n\nconst HelpDialog: React.FC = () => {\n return (\n <div className={styles.container} data-testid=\"help-dialog\">\n <HelpDialogItem\n label=\"Documentation\"\n icon={IconDocumentation}\n link={externalLinks.tiledbCloudDocs.home}\n />\n <HelpDialogItem\n label=\"Pricing\"\n icon={IconDollar}\n link={externalLinks.tiledbPricing}\n />\n <HelpDialogItem\n label=\"Contact\"\n icon={IconChat}\n link={externalLinks.tiledbContact}\n />\n <HelpDialogItem\n label=\"Feature request\"\n icon={IconSparkles}\n link={externalLinks.tiledbFeedback}\n />\n <HelpDialogItem\n label=\"Privacy policy\"\n icon={IconSecureShield}\n link={externalLinks.tiledbPrivacyPolicy}\n />\n <HelpDialogItem\n label=\"Terms of use\"\n icon={IconBook}\n link={externalLinks.tiledbTerms}\n />\n </div>\n );\n};\n\nexport default HelpDialog;\n","import HelpDialog from './HelpDialog';\n\nexport default HelpDialog;\n","import React, { useMemo } from 'react';\nimport useJupyter, { JupyterStatus } from 'store/JupyterStore';\nimport MainMenuButton from './MainMenuButton';\nimport { overviewLinks, settingsLinks } from 'utils/links';\nimport IconHome from 'components/Svg/icons/IconHome';\nimport IconDatabase from 'components/Svg/icons/IconDatabase';\nimport { useLocation } from 'react-router-dom';\nimport IconSettings from 'components/Svg/icons/IconSettings';\nimport IconBook from 'components/Svg/icons/IconBook';\nimport IconQuestionmarkFilled from 'components/Svg/icons/IconQuestionmarkFilled';\nimport IconStore from 'components/Svg/icons/IconStore';\nimport assetsLinks from 'utils/links/assetsLinks';\nimport NamespaceSelector from './NamespaceSelector';\nimport monitorLinks from 'utils/links/monitorLinks';\nimport academyLinks from 'utils/links/academyLinks';\nimport useEvent from 'hooks/useEvent';\nimport eventBus, { EventTypes } from 'utils/helpers/eventBus';\nimport classNames from 'classnames';\nimport marketplaceLinks from 'utils/links/marketplaceLinks';\nimport HelpDialog from './HelpDialog';\nimport Dialog from 'components/Dialog';\nimport AuthRender from 'components/AuthRender';\nimport IconSystemStatus from 'components/Svg/icons/IconSystemStatus';\nimport IconLaunch from 'components/Svg/icons/IconLaunch';\nimport appsLinks from 'utils/links/appsLinks/appsLinks';\nimport './MainMenu.scss';\n\nconst MainMenu: React.FC = () => {\n const { pathname } = useLocation();\n const state: boolean = useEvent(EventTypes.TOGGLE_MAIN_SIDEBAR);\n const status = useJupyter((state) => state.status);\n\n const monitorIndicatorVariant = useMemo(() => {\n if (status === JupyterStatus.Running) {\n return 'info';\n } else if (status === JupyterStatus.ShuttingDown) {\n return 'warning';\n }\n }, [status]);\n\n return (\n <>\n <div\n className={classNames('TDB-MainMenu', {\n 'TDB-MainMenu--mobile-hidden': !state,\n })}\n >\n <div className=\"TDB-MainMenu__section\">\n <AuthRender>\n <NamespaceSelector />\n </AuthRender>\n <MainMenuButton\n active={pathname === overviewLinks.root()}\n text=\"Home\"\n to={overviewLinks.root()}\n icon={IconHome}\n dataTestId=\"menu-home-link\"\n basicTourStep=\"6\"\n />\n <MainMenuButton\n active={pathname.startsWith(assetsLinks.root())}\n text=\"Assets\"\n to={assetsLinks.root()}\n icon={IconDatabase}\n dataTestId=\"menu-assets-link\"\n basicTourStep=\"0\"\n organizationBasicTourStep=\"0\"\n />\n <MainMenuButton\n text=\"Apps\"\n to={appsLinks.root()}\n active={pathname.startsWith(appsLinks.root())}\n icon={IconLaunch}\n basicTourStep=\"1\"\n dataTestId=\"menu-apps-link\"\n />\n <MainMenuButton\n active={pathname.startsWith(monitorLinks.root())}\n text=\"Monitor\"\n to={monitorLinks.root()}\n indicatorVariant={monitorIndicatorVariant}\n icon={IconSystemStatus}\n dataTestId=\"menu-monitor-link\"\n basicTourStep=\"2\"\n />\n <MainMenuButton\n to={academyLinks.root()}\n active={pathname.startsWith(academyLinks.root())}\n text=\"Academy\"\n icon={IconBook}\n basicTourStep=\"3\"\n dataTestId=\"menu-academy-link\"\n />\n <MainMenuButton\n to={marketplaceLinks.root()}\n active={pathname.startsWith(marketplaceLinks.root())}\n text=\"Marketplace\"\n icon={IconStore}\n dataTestId=\"menu-marketplace-link\"\n basicTourStep=\"4\"\n />\n </div>\n <div className=\"TDB-MainMenu__section\">\n <MainMenuButton\n active={pathname.startsWith(settingsLinks.root())}\n text=\"Settings\"\n to={settingsLinks.root()}\n icon={IconSettings}\n dataTestId=\"menu-settings-link\"\n organizationBasicTourStep=\"1\"\n />\n <Dialog\n trigger=\"click\"\n content={<HelpDialog />}\n interactive\n preventOverflow\n >\n <MainMenuButton\n active={false}\n text=\"Help\"\n icon={IconQuestionmarkFilled}\n dataTestId=\"menu-help-link\"\n />\n </Dialog>\n </div>\n </div>\n {/*\n * The following div is holding the click listener to hide left side menus (mobile only)\n * It acts as \"on-click-outside\"\n * The burger button opens the main menu and any nested SideNavs,\n * those menus can be dismissed by clicking on the div below\n */}\n <div\n onClick={() => eventBus.emit(EventTypes.TOGGLE_MAIN_SIDEBAR, false)}\n className={classNames('TDB-MainMenu__on-click-outside', {\n 'TDB-MainMenu__on-click-outside--active': state,\n })}\n />\n </>\n );\n};\n\nexport default MainMenu;\n","import MainMenu from './MainMenu';\n\nexport default MainMenu;\n","/*\n * Div containing the app background depending on which page is active\n * The main purpose is to have a specific background in overview page\n */\nimport classNames from 'classnames';\nimport './MainContent.scss';\nimport React, { PropsWithChildren } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { overviewLinks } from 'utils/links';\n\nconst MainContent: React.FC<PropsWithChildren> = (props) => {\n const { children } = props;\n const { pathname } = useLocation();\n\n return (\n <div\n className={classNames('TDB-MainContent', {\n 'TDB-MainContent--overview': pathname === overviewLinks.root(),\n })}\n >\n {children}\n </div>\n );\n};\n\nexport default MainContent;\n","import MainContent from './MainContent';\n\nexport default MainContent;\n","import React, { useEffect, useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport useModal from 'store/ModalStore';\nimport { useOnboardingContext } from 'store/OnboardingContext';\nimport academyRouterPaths from 'utils/routerPaths/academyRouterPaths';\n\nconst GetStarted: React.FC = () => {\n const { refetchCompletedOnboardingItems } = useOnboardingContext();\n const showUserOnboardingModal = useModal(\n (state) => state.showUserOnboardingModal\n );\n const { pathname } = useLocation();\n /**\n * Onboarding flow is disabled in the academy page.\n * The user during the onboarding should be able to browse the academy (there is a link for that).\n */\n const shouldShowModalFlow = useMemo(() => {\n return !pathname.startsWith(academyRouterPaths.root);\n }, [pathname]);\n\n const flushModals = useModal((state) => state.flushModals);\n useEffect(() => {\n if (shouldShowModalFlow) {\n showUserOnboardingModal({\n onSuccess: () => {\n flushModals();\n refetchCompletedOnboardingItems();\n },\n });\n }\n }, [\n flushModals,\n refetchCompletedOnboardingItems,\n shouldShowModalFlow,\n showUserOnboardingModal,\n ]);\n\n return null;\n};\n\nexport default GetStarted;\n","import GetStarted from './GetStarted';\n\nexport default GetStarted;\n","import React, { useState } from 'react';\nimport { Placement } from 'react-joyride';\nimport Tour from 'components/Tour';\nimport { useOnboardingContext } from 'store/OnboardingContext';\nimport useAddCompletedOnboardingItems from 'hooks/api/Onboarding/useAddCompletedOnboardingItems';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport { OnboardingItem } from 'api-client';\n\nconst steps = [\n {\n target: '[basic-tour-step=\"0\"]',\n title: 'Manage all your assets',\n content:\n 'Store, catalog, and govern all your data and code in a single data platform. TileDB has all the functionality you need to build a single infrastructure for your organization.',\n placement: 'right' as Placement,\n },\n {\n target: '[basic-tour-step=\"1\"]',\n title: 'Launch apps',\n content:\n 'Keep track of your active notebooks and dashboards and continue your work from where you left off.',\n placement: 'right' as Placement,\n },\n {\n target: '[basic-tour-step=\"2\"]',\n title: 'Monitor your servers',\n content:\n 'Launch, manage, and monitor your notebook servers. Track serverless compute activity.',\n placement: 'right' as Placement,\n },\n {\n target: '[basic-tour-step=\"3\"]',\n title: 'Learn on Academy',\n content:\n 'Read documentation and track your progress with tutorials on the areas of your interest.',\n placement: 'right' as Placement,\n },\n {\n target: '[basic-tour-step=\"4\"]',\n title: 'Explore public assets',\n content:\n 'Discover and access a selection of public assets in our marketplace. Browse, select, and utilize resources that can propel your projects forward.',\n placement: 'right' as Placement,\n },\n {\n target: '[basic-tour-step=\"5\"]',\n title: 'Switch namespace',\n content:\n 'Effortlessly toggle between your own namespace and the different organizations you belong to.',\n placement: 'right' as Placement,\n },\n {\n target: '[basic-tour-step=\"6\"]',\n title: 'Unlock your full potential',\n content:\n 'Complete your onboarding journey and discover the extensive capabilities that TileDB Cloud offers to enhance your data management and analysis needs.',\n placement: 'right' as Placement,\n },\n];\n\nconst BasicTour = () => {\n const { workspace } = useWorkspaceContext();\n const { refetchCompletedOnboardingItems } = useOnboardingContext();\n const [addOnboardingItems] = useAddCompletedOnboardingItems();\n const [active, setActive] = useState(true);\n const addOnboardingItemsData = {\n namespace: workspace?.namespace as string,\n items: {\n entries: [OnboardingItem.BasicTour],\n },\n };\n\n const onFinish = async () => {\n await addOnboardingItems([addOnboardingItemsData]);\n refetchCompletedOnboardingItems();\n };\n\n const onDismiss = async () => {\n setActive(false);\n await addOnboardingItems([addOnboardingItemsData]);\n refetchCompletedOnboardingItems();\n };\n\n return (\n <Tour\n steps={steps}\n active={active}\n onFinish={onFinish}\n onDismiss={onDismiss}\n startWithDelay={1000}\n dismissable\n />\n );\n};\n\nexport default BasicTour;\n","import BasicTour from './BasicTour';\n\nexport default BasicTour;\n","import UserOnboarding from './UserOnboarding';\n\nexport default UserOnboarding;\n","import React from 'react';\nimport { useOnboardingContext } from 'store/OnboardingContext';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport GetStarted from './GetStarted';\nimport BasicTour from './BasicTour';\n\nconst UserOnboarding: React.FC = () => {\n const { isUserWorkspace } = useWorkspaceContext();\n const {\n completedOnboardingItems,\n isIntroComplete,\n isProfileSetupComplete,\n isBasicTourComplete,\n isUserOnboardingSkipped,\n onboardingState,\n } = useOnboardingContext();\n\n if (!isUserWorkspace) {\n /**\n * Hide onboarding for non-user workspaces\n */\n return null;\n }\n\n if (!completedOnboardingItems || !onboardingState) {\n /**\n * Return nothing until completedOnboardingItems are present\n */\n return null;\n }\n\n if (isUserOnboardingSkipped) {\n /**\n * Return nothing if user has skipped their onboarding\n */\n return null;\n }\n\n if (!isIntroComplete || !isProfileSetupComplete) {\n return <GetStarted />;\n }\n\n if (!isBasicTourComplete) {\n return <BasicTour />;\n }\n\n return null;\n};\n\nexport default UserOnboarding;\n","import React, { useState } from 'react';\nimport { Placement } from 'react-joyride';\nimport Tour from 'components/Tour';\nimport { useOnboardingContext } from 'store/OnboardingContext';\nimport useAddCompletedOnboardingItems from 'hooks/api/Onboarding/useAddCompletedOnboardingItems';\nimport { OnboardingItem } from 'api-client';\nimport { useUserContext } from 'store/UserContext';\nimport useModal from 'store/ModalStore';\nimport useMount from 'hooks/useMount';\nimport useWorkspaceStore from 'store/WorkspaceSelectedStore';\n\nconst steps = [\n {\n target: '[organization-basic-tour-step=\"0\"]',\n title: 'Your org assets',\n content:\n 'Store, catalog and govern all your assets in a single data platform. TileDB has all the functionality you need to build a single data infrastructure for your organization.',\n placement: 'right' as Placement,\n },\n {\n target: '[organization-basic-tour-step=\"1\"]',\n title: 'Your organization profile',\n content:\n 'All your profile info for your organizations are gathered in the profile tab.',\n placement: 'right' as Placement,\n },\n];\n\nconst BasicTour = () => {\n const { user } = useUserContext();\n const { refetchCompletedOnboardingItems } = useOnboardingContext();\n const workspaceSelected = useWorkspaceStore(\n (state) => state.workspaceSelected\n );\n const [addOnboardingItems] = useAddCompletedOnboardingItems();\n const [tourVisible, setTourVisible] = useState(false);\n const [active, setActive] = useState(true);\n const showWelcomeToOrganizationModal = useModal(\n (state) => state.showWelcomeToOrganizationModal\n );\n const flushModals = useModal((state) => state.flushModals);\n const addOnboardingItemsData = {\n namespace: user.id,\n items: {\n entries: [OnboardingItem.OrganizationBasicTour],\n },\n };\n\n const onFinish = async () => {\n await addOnboardingItems([addOnboardingItemsData]);\n refetchCompletedOnboardingItems();\n };\n\n const onDismiss = async () => {\n setActive(false);\n await addOnboardingItems([addOnboardingItemsData]);\n refetchCompletedOnboardingItems();\n };\n\n useMount(() => {\n if (workspaceSelected?.state?.isNewOrganization) {\n showWelcomeToOrganizationModal({\n onSuccess: () => {\n setTourVisible(true);\n flushModals();\n },\n });\n } else {\n setTourVisible(true);\n }\n });\n\n if (!tourVisible) {\n return null;\n }\n\n return (\n <Tour\n steps={steps}\n active={active}\n onFinish={onFinish}\n onDismiss={onDismiss}\n startWithDelay={1000}\n dismissable\n />\n );\n};\n\nexport default BasicTour;\n","import BasicTour from './BasicTour';\n\nexport default BasicTour;\n","import OrganizationOnboarding from './OrganizationOnboarding';\n\nexport default OrganizationOnboarding;\n","import React from 'react';\nimport { useOnboardingContext } from 'store/OnboardingContext';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport BasicTour from './BasicTour';\n\nconst OrganizationOnboarding: React.FC = () => {\n const { isOrganizationWorkspace } = useWorkspaceContext();\n const {\n completedOnboardingItems,\n isOrganizationBasicTourComplete,\n\n isOrganizationOnboardingSkipped,\n } = useOnboardingContext();\n\n if (!isOrganizationWorkspace) {\n return null;\n }\n\n if (!completedOnboardingItems) {\n /**\n * Return nothing until completedOnboardingItems are present\n */\n return null;\n }\n\n if (isOrganizationOnboardingSkipped) {\n /**\n * Return nothing if user has skipped onboarding for this organization\n */\n return null;\n }\n\n if (!isOrganizationBasicTourComplete) {\n /**\n * All user roles should see the basic tour\n */\n return <BasicTour />;\n }\n\n return null;\n};\n\nexport default OrganizationOnboarding;\n","import useDeleteOnboardingItems from './useDeleteOnboardingItems';\n\nexport default useDeleteOnboardingItems;\nexport * from './useDeleteOnboardingItems';\n","import { MutateResponse, useMutateRequest } from 'hooks/useRequest';\nimport { useMutation } from '@tanstack/react-query';\nimport {\n UserApi_deleteOnboardingItems,\n UserApi_deleteOnboardingItems$Params,\n UserApi_deleteOnboardingItems$Response,\n} from 'api-client';\n\nconst useDeleteCompletedOnboardingItems = (): MutateResponse<\n UserApi_deleteOnboardingItems$Params,\n UserApi_deleteOnboardingItems$Response\n> => {\n const { mutateAsync, isLoading, error, data } = useMutation(\n UserApi_deleteOnboardingItems\n );\n\n return [\n useMutateRequest(mutateAsync),\n data,\n error as null | Error,\n isLoading,\n ];\n};\n\nexport default useDeleteCompletedOnboardingItems;\n","import Onboarding from './Onboarding';\n\nexport default Onboarding;\nexport * from './Onboarding';\n","import React from 'react';\nimport UserOnboarding from './UserOnboarding';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport OrganizationOnboarding from './OrganizationOnboarding';\nimport useDeleteOnboardingItems from 'hooks/api/Onboarding/useDeleteOnboardingItems';\nimport { useUserContext } from 'store/UserContext';\nimport { useOnboardingContext } from 'store/OnboardingContext';\n\nconst Onboarding: React.FC = () => {\n const { user } = useUserContext();\n const { isUserWorkspace, isOrganizationWorkspace } = useWorkspaceContext();\n const [deleteOnboardingItems] = useDeleteOnboardingItems();\n const { onboardingLoading } = useOnboardingContext();\n\n // Prevent onboarding from rendering until all data are here\n if (onboardingLoading) {\n return null;\n }\n\n /**\n * create a global function to reset onboarding for testing & other purposes\n * we need to provide this (mostly for QA) since there is no other way to delete onboarding in the UI\n */\n global.resetOnboarding = () => {\n deleteOnboardingItems([{ namespace: user.username }])\n .then(() => {\n // eslint-disable-next-line\n console.log(`Onboarding for namespace \"${user.username}\" cleared!`);\n })\n .catch(() => {\n // eslint-disable-next-line\n console.error('Could not clear onboarding.');\n });\n };\n\n if (isUserWorkspace) {\n return <UserOnboarding />;\n }\n\n if (isOrganizationWorkspace) {\n return <OrganizationOnboarding />;\n }\n\n return null;\n};\n\nexport default Onboarding;\n","// extracted by mini-css-extract-plugin\nexport default {\"free-tier__content\":\"styles_free-tier__content__IsKrA\",\"free-tier__bullet\":\"styles_free-tier__bullet__+GlAU\"};","import useGetUserMeta from './useGetUserMeta';\n\nexport default useGetUserMeta;\n","import {\n UserApi_getUserMetaStatus,\n UserApi_getUserMetaStatus$Params,\n UserApi_getUserMetaStatus$Path,\n UserApi_getUserMetaStatus$Response,\n} from 'api-client';\nimport { AxiosResponse } from 'axios';\nimport { UseRequestType, useQueryRequest } from 'hooks/useRequest';\nimport { useQuery } from '@tanstack/react-query';\n\nconst useGetUserMeta: UseRequestType<\n UserApi_getUserMetaStatus$Params,\n UserApi_getUserMetaStatus$Response\n> = (__, config, queryConfig) => {\n const { isFetching, data, error, refetch } = useQuery<\n AxiosResponse<UserApi_getUserMetaStatus$Response>,\n UserApi_getUserMetaStatus$Params\n >(\n [UserApi_getUserMetaStatus$Path],\n useQueryRequest(UserApi_getUserMetaStatus, config),\n queryConfig\n );\n\n return [refetch, data, error, isFetching];\n};\n\nexport default useGetUserMeta;\n","import useUpdateUserMeta from './useUpdateUserMeta';\n\nexport default useUpdateUserMeta;\n","import {\n UserApi_getUserMetaStatus$Path,\n UserApi_patchUserMetaStatus,\n UserApi_patchUserMetaStatus$Params,\n UserApi_patchUserMetaStatus$Response,\n} from 'api-client';\nimport { MutateResponse, useMutateRequest } from 'hooks/useRequest';\nimport { useMutation } from '@tanstack/react-query';\nimport queryClient from 'utils/helpers/queryClient';\n\nconst useUpdateUserMeta = (): MutateResponse<\n UserApi_patchUserMetaStatus$Params,\n UserApi_patchUserMetaStatus$Response\n> => {\n const { mutateAsync, isLoading, error, data } = useMutation(\n UserApi_patchUserMetaStatus,\n {\n onSuccess: () => {\n return queryClient.invalidateQueries({\n // Invalidate user meta get request after updating user meta (important)\n predicate: (query) =>\n query.queryKey[0] === UserApi_getUserMetaStatus$Path,\n });\n },\n }\n );\n\n return [\n useMutateRequest(mutateAsync),\n data,\n error as null | Error,\n isLoading,\n ];\n};\n\nexport default useUpdateUserMeta;\n","import usePendingNotification from './usePendingNotification';\n\nexport default usePendingNotification;\n","import React, { useEffect } from 'react';\nimport { UserApi_patchUserMetaStatus$Params } from 'api-client';\nimport { ModalInfoParams } from 'components/ModalsV2/ModalInfo';\nimport useModal from 'store/ModalStore';\nimport imgFreeTier from './assets/free-tier.jpg';\nimport Typography from 'components/Typography';\nimport styles from './styles.module.scss';\nimport useGetUserMeta from 'hooks/api/User/useGetUserMeta';\nimport useUpdateUserMeta from 'hooks/api/User/useUpdateUserMeta';\nimport { useUserContext } from 'store/UserContext';\n\n/**\n * Hook that checks if there is any pending information to be shown to the user.\n * If there is pending information (usually a one-time notification about a product update),\n * an informational modal is rendered. When the user dismisses the modal, a request is fired\n * to update the database, ensuring the message is not shown again.\n */\nfunction usePendingNotification() {\n const { isLoggedIn } = useUserContext();\n const [, userMetaResponse] = useGetUserMeta(\n undefined,\n { noSnackbar: true },\n { enabled: isLoggedIn }\n );\n const showFreeTierModal = useFreeTierModal();\n\n useEffect(() => {\n if (userMetaResponse?.data.announce_cc_removal_and_free_tier) {\n showFreeTierModal();\n }\n }, [showFreeTierModal, userMetaResponse]);\n}\n\nexport default usePendingNotification;\n\n/**\n * Returns the function to open the free tier modal with its required params\n */\nfunction useFreeTierModal(): Function {\n const showInfoModal = useModal((state) => state.showInfoModal);\n const flushModals = useModal((state) => state.flushModals);\n const [updateMeta] = useUpdateUserMeta();\n const onSuccess = async () => {\n const params: UserApi_patchUserMetaStatus$Params = {\n meta: {\n announce_cc_removal_and_free_tier: false,\n },\n };\n return updateMeta([params, { noSnackbar: true }]).finally(flushModals);\n };\n const params: ModalInfoParams = {\n onSuccess: onSuccess,\n title: \"We've made some important changes\",\n image: {\n light: imgFreeTier,\n dark: imgFreeTier,\n },\n content: (\n <div\n className={styles['free-tier__content']}\n data-testid=\"free-tier-content\"\n >\n <div>\n <Typography\n fontSize=\"heading-xs\"\n fontWeight=\"700\"\n color=\"color-text-default\"\n as=\"h3\"\n className={styles['free-tier__bullet']}\n >\n 1. Removal of payment instruments\n </Typography>\n <Typography\n fontSize=\"body-md-text\"\n color=\"color-text-default\"\n fontWeight=\"500\"\n as=\"p\"\n align=\"left\"\n >\n As part of our ongoing efforts to simplify onboarding and reduce\n administrative overhead for our users, we have removed the ability\n to add a payment method on TileDB Cloud. Going forward, all usage is\n charged against your TileDB Cloud credits. If you are a member of a\n paid organization with credits, no action is needed on your end.\n </Typography>\n </div>\n <div>\n <Typography\n fontSize=\"heading-xs\"\n fontWeight=\"700\"\n color=\"color-text-default\"\n as=\"h3\"\n className={styles['free-tier__bullet']}\n >\n 2. Introducing our new free tier\n </Typography>\n <Typography\n fontSize=\"body-md-text\"\n color=\"color-text-default\"\n fontWeight=\"500\"\n as=\"p\"\n align=\"left\"\n >\n If you are not a member of a paid account, you will also no longer\n be able to create organizations on TileDB. Instead, we have launched\n a new Free tier for individual users, which entails $100 in free\n credits for 6 months. For access to this Free tier, simply click\n Apply for free tier on your Home screen and follow the instructions.\n Your application will be reviewed by one of our staff within 24\n hours.\n </Typography>\n </div>\n <div>\n <Typography\n fontSize=\"body-md-text\"\n color=\"color-text-default\"\n fontWeight=\"500\"\n as=\"p\"\n align=\"left\"\n >\n If you have any questions, or feel you have been incorrectly removed\n from a paid tier, please contact our team at{' '}\n <Typography\n as=\"a\"\n className=\"link\"\n href=\"mailto:sales@tiledb.com\"\n target=\"_blank\"\n >\n sales@tiledb.com\n </Typography>\n .\n </Typography>\n </div>\n </div>\n ),\n action: {\n text: 'Done',\n onClick: flushModals,\n },\n };\n return () => showInfoModal(params);\n}\n","import './Console.scss';\nimport React, { ReactElement, Suspense, useEffect } from 'react';\nimport { Switch, Route, Redirect, useLocation } from 'react-router-dom';\nimport NotFound from 'pages/NotFound';\nimport AuthGuard from 'components/AuthGuard';\nimport Header from 'components/Header';\nimport ErrorBoundary from 'components/ErrorBoundary';\nimport useAuthValue from 'hooks/useAuthValue';\nimport {\n arrayRouterPaths,\n overviewRouterPaths,\n invitationRouterPaths,\n mlModelRouterPaths,\n notebookRouterPaths,\n udfRouterPaths,\n fileRouterPaths,\n settingsRouterPaths,\n activityRouterPaths,\n taskgraphLogsRouterPaths,\n dashboardRouterPaths,\n} from 'utils/routerPaths';\nimport { marketplaceLinks, overviewLinks, rootPath } from 'utils/links';\nimport groupRouterPaths from 'utils/routerPaths/groupRouterPaths';\nimport ModalContainer from 'containers/ModalContainer';\nimport taskGraphRouterPaths from 'utils/routerPaths/taskGraphRouterPaths';\nimport WorkspaceMenu from 'components/WorkspaceMenu';\nimport { useUserContext } from 'store/UserContext';\nimport { NamespaceActions, NamespaceType } from 'api-client';\nimport PermissionsGuard from 'components/PermissionsGuard/PermissionsGuard';\nimport { useWorkspaceContext } from 'store/WorkspaceContext';\nimport ConditionalWrapper from 'components/ConditionalWrapper';\nimport JupyterContainer from 'containers/JupyterContainer';\nimport isJupyterDisabled from 'utils/helpers/isJupyterDisabled';\nimport useSessionStorage from 'hooks/useSessionStorage';\nimport sessionStorageKeys from 'utils/constants/sessionStorageKeys';\nimport useMount from 'hooks/useMount';\nimport lazyLoadComponent from 'utils/helpers/lazyLoadComponent';\nimport biomedicalImagingRouterPaths from 'utils/routerPaths/biomedicalImagingRouterPaths';\nimport somaRouterPaths from 'utils/routerPaths/somaRouterPaths';\nimport vcfRouterPaths from 'utils/routerPaths/vcfRouterPaths';\nimport pointCloudRouterPaths from 'utils/routerPaths/pointCloudRouterPaths';\nimport geometryRouterPaths from 'utils/routerPaths/geometryRouterPaths';\nimport academyRouterPaths from 'utils/routerPaths/academyRouterPaths';\nimport rasterRouterPaths from 'utils/routerPaths/rasterRouterPaths';\nimport vectorSearchRouterPaths from 'utils/routerPaths/vectorSearchRouterPaths';\nimport MainMenu from 'components/MainMenu';\nimport assetsRouterPaths from 'utils/routerPaths/assetsRouterPaths';\nimport monitorRouterPaths from 'utils/routerPaths/monitorRouterPaths';\nimport MainContent from './MainContent';\nimport marketplaceRouterPaths from 'utils/routerPaths/marketplaceRouterPaths';\nimport Onboarding from 'components/Onboarding';\nimport tasksRouterPaths from 'utils/routerPaths/tasksRouterPaths';\nimport pushPathnameToToHistoryStack from 'utils/helpers/history/pushPathnameToToHistoryStack';\nimport appsRouterPaths from 'utils/routerPaths/appsRouterPaths';\nimport usePendingNotification from './usePendingNotification';\n\nconst Overview = lazyLoadComponent(() => import('./Overview'));\nconst Tasks = lazyLoadComponent(() => import('./Tasks'));\nconst ArrayDetails = lazyLoadComponent(() => import('./Arrays/ArrayDetails'));\nconst NotebookDetails = lazyLoadComponent(\n () => import('./Notebooks/NotebookDetails')\n);\nconst DashboardDetails = lazyLoadComponent(\n () => import('./Dashboards/DashboardDetails')\n);\nconst UDFDetails = lazyLoadComponent(() => import('./UDFs/UDFDetails'));\nconst MLModelDetails = lazyLoadComponent(\n () => import('./MLModels/MLModelDetails')\n);\nconst Activity = lazyLoadComponent(() => import('./Activity'));\nconst Invitations = lazyLoadComponent(() => import('./Invitations'));\nconst FileDetails = lazyLoadComponent(() => import('./Files/FileDetails'));\nconst GroupDetails = lazyLoadComponent(() => import('./Groups/GroupDetails'));\nconst TaskgraphsDetails = lazyLoadComponent(\n () => import('./Taskgraphs/TaskgraphDetails')\n);\nconst Settings = lazyLoadComponent(() => import('./Settings'));\nconst BiomedicalImagingDetails = lazyLoadComponent(\n () => import('./BiomedicalImaging/BiomedicalImagingDetails')\n);\nconst SOMADetails = lazyLoadComponent(() => import('./SOMA/SOMADetails'));\nconst VCFDetails = lazyLoadComponent(() => import('./VCF/VCFDetails'));\nconst PointCloudDetails = lazyLoadComponent(\n () => import('./PointCloud/PointCloudDetails')\n);\nconst GeometryDetails = lazyLoadComponent(\n () => import('./Geometry/GeometryDetails')\n);\nconst RasterDetails = lazyLoadComponent(() => import('./Raster/RasterDetails'));\nconst VectorSearchDetails = lazyLoadComponent(\n () => import('./VectorSearch/VectorSearchDetails')\n);\nconst Assets = lazyLoadComponent(() => import('./Assets'));\nconst Compute = lazyLoadComponent(() => import('./Monitor'));\nconst Academy = lazyLoadComponent(() => import('./Academy'));\nconst Store = lazyLoadComponent(() => import('./Marketplace'));\nconst Apps = lazyLoadComponent(() => import('./Apps'));\nconst TaskgraphLogs = lazyLoadComponent(() => import('./TaskgraphLogs'));\n\nconst Console: React.FC = () => {\n const redirectTo = useAuthValue<string>(\n overviewLinks.root(),\n marketplaceLinks.root()\n );\n const { pathname, key } = useLocation();\n\n useEffect(() => {\n pushPathnameToToHistoryStack(pathname, { exact: false, key: key });\n /* eslint-disable react-hooks/exhaustive-deps */\n }, []);\n\n const { isLoggedIn } = useUserContext();\n const { workspace } = useWorkspaceContext();\n const [, , removeInvalidTokenKey] = useSessionStorage(\n sessionStorageKeys.INVALID_TOKEN\n );\n\n useMount(() => {\n if (isLoggedIn) {\n removeInvalidTokenKey();\n }\n });\n\n // Check for any pending notifications and display the informational modal if needed\n usePendingNotification();\n\n return (\n <ModalContainer>\n <div className=\"TDB-Console__OuterWrapper\">\n <MainMenu />\n {isLoggedIn && (\n <>\n <WorkspaceMenu />\n {/**\n * We may disable jupyter in local dev or in e2e tests\n * Jupyter doesn't work in those environments\n */}\n {!isJupyterDisabled() && <JupyterContainer />}\n </>\n )}\n <MainContent>\n <Header />\n <div className=\"TDB-Console__inner-content\">\n <ErrorBoundary>\n <Onboarding />\n <Suspense fallback={null}>\n <Switch>\n <Redirect path={rootPath} exact to={redirectTo} />\n <Route\n path={overviewRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <Overview />\n </AuthGuard>\n )}\n />\n <Route\n path={assetsRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <Assets />\n </AuthGuard>\n )}\n />\n <Route\n path={monitorRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <Compute />\n </AuthGuard>\n )}\n />\n <Route\n path={tasksRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <Tasks />\n </AuthGuard>\n )}\n />\n <Route\n path={taskgraphLogsRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <TaskgraphLogs />\n </AuthGuard>\n )}\n />\n <Route\n path={arrayRouterPaths.details}\n render={(): React.ReactNode => <ArrayDetails />}\n />\n <Route\n path={academyRouterPaths.root}\n render={(): React.ReactNode => <Academy />}\n />\n <Route\n path={activityRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <ConditionalWrapper\n condition={\n workspace?.type === NamespaceType.Organization\n }\n left={(children) => (\n <PermissionsGuard\n requiredPermission={NamespaceActions.Write}\n permissions={workspace?.allowedActions}\n showFallback\n >\n {children}\n </PermissionsGuard>\n )}\n right={(children) => children}\n >\n <Activity />\n </ConditionalWrapper>\n </AuthGuard>\n )}\n />\n <Route\n path={notebookRouterPaths.details}\n render={(): React.ReactNode => <NotebookDetails />}\n />\n <Route\n path={dashboardRouterPaths.details}\n render={(): React.ReactNode => <DashboardDetails />}\n />\n <Route\n path={udfRouterPaths.details}\n render={(): React.ReactNode => <UDFDetails />}\n />\n <Route\n path={mlModelRouterPaths.details}\n render={(): React.ReactNode => <MLModelDetails />}\n />\n <Route\n path={fileRouterPaths.details}\n render={(): React.ReactNode => <FileDetails />}\n />\n <Route\n path={settingsRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <Settings />\n </AuthGuard>\n )}\n />\n <Route\n path={invitationRouterPaths.root}\n render={(): React.ReactNode => <Invitations />}\n />\n <Route\n path={groupRouterPaths.details}\n render={(): React.ReactNode => <GroupDetails />}\n />\n <Route\n path={biomedicalImagingRouterPaths.details}\n render={(): React.ReactNode => <BiomedicalImagingDetails />}\n />\n <Route\n path={somaRouterPaths.details}\n render={(): React.ReactNode => <SOMADetails />}\n />\n <Route\n path={vcfRouterPaths.details}\n render={(): React.ReactNode => <VCFDetails />}\n />\n <Route\n path={pointCloudRouterPaths.details}\n render={(): React.ReactNode => <PointCloudDetails />}\n />\n <Route\n path={geometryRouterPaths.details}\n render={(): React.ReactNode => <GeometryDetails />}\n />\n <Route\n path={rasterRouterPaths.details}\n render={(): React.ReactNode => <RasterDetails />}\n />\n <Route\n path={vectorSearchRouterPaths.details}\n render={(): React.ReactNode => <VectorSearchDetails />}\n />\n <Route\n path={taskGraphRouterPaths.details}\n render={(): React.ReactNode => <TaskgraphsDetails />}\n />\n <Route\n path={appsRouterPaths.root}\n render={(): React.ReactNode => (\n <AuthGuard>\n <Apps />\n </AuthGuard>\n )}\n />\n <Route\n path={marketplaceRouterPaths.root}\n render={(): React.ReactNode => <Store />}\n />\n <Route render={(): ReactElement => <NotFound />} />\n </Switch>\n </Suspense>\n </ErrorBoundary>\n </div>\n </MainContent>\n </div>\n </ModalContainer>\n );\n};\n\nexport default Console;\n","import Console from './Console';\n\nexport default Console;\n","import React, { Suspense } from 'react';\nimport { Switch, Route } from 'react-router-dom';\nimport NotFound from 'pages/NotFound';\nimport Loader from 'components/Loader';\nimport { oauth2RouterPaths } from 'utils/routerPaths';\nimport lazyLoadComponent from 'utils/helpers/lazyLoadComponent';\n\nconst OAuth2Login = lazyLoadComponent(() => import('./OAuth2Login'));\nconst OAuth2Consent = lazyLoadComponent(() => import('./OAuth2Consent'));\n\nfunction OAuth2(): React.ReactElement {\n return (\n <Suspense fallback={<Loader />}>\n <Switch>\n <Route path={oauth2RouterPaths.login} component={OAuth2Login} />\n <Route path={oauth2RouterPaths.consent} component={OAuth2Consent} />\n <Route component={NotFound} />\n </Switch>\n </Suspense>\n );\n}\n\nexport default React.memo(OAuth2);\n","import OAuth2 from './OAuth2';\n\nexport default OAuth2;\n","import React, { ReactElement, Suspense } from 'react';\nimport { Switch, Route } from 'react-router-dom';\nimport NotFound from 'pages/NotFound';\nimport ErrorBoundary from 'components/ErrorBoundary';\nimport { callbackRouterPaths } from 'utils/routerPaths';\nimport AuthGuard from 'components/AuthGuard';\nimport lazyLoadComponent from 'utils/helpers/lazyLoadComponent';\n\nconst StripeCallback = lazyLoadComponent(() => import('./StripeCallback'));\n\nconst Callbacks: React.FC = () => {\n return (\n <ErrorBoundary>\n <AuthGuard>\n <Suspense fallback={null}>\n <Switch>\n <Route\n path={callbackRouterPaths.stripe}\n component={StripeCallback}\n />\n <Route render={(): ReactElement => <NotFound />} />\n </Switch>\n </Suspense>\n </AuthGuard>\n </ErrorBoundary>\n );\n};\n\nexport default Callbacks;\n","import Callbacks from './Callbacks';\n\nexport default Callbacks;\n","import React from 'react';\nimport { UserApi_logout } from 'api-client';\nimport useMount from 'hooks/useMount';\nimport history from 'utils/helpers/history';\nimport { authLinks } from 'utils/links';\nimport Loader from 'components/Loader';\nimport logoutHandler from 'utils/helpers/logoutHandler';\n\nconst Logout: React.FC = () => {\n useMount(() => {\n UserApi_logout().finally(() => {\n logoutHandler();\n history.push(authLinks.login());\n });\n });\n\n return <Loader data-testid=\"logout-loader\" />;\n};\n\nexport default Logout;\n","import Logout from './Logout';\n\nexport default Logout;\n","import React, { useEffect } from 'react';\nimport Auth from './Auth';\nimport NotFound from './NotFound';\nimport {\n Switch,\n Route,\n Redirect,\n RouteComponentProps,\n useLocation,\n} from 'react-router-dom';\nimport withErrorBoundary from 'HOC/withErrorBoundary';\nimport Console from './Console';\nimport OAuth2 from './OAuth2';\nimport {\n authRouterPaths,\n oauth2RouterPaths,\n callbackRouterPaths,\n} from 'utils/routerPaths';\nimport Callbacks from './Callbacks';\nimport {\n authLinks,\n rootPath,\n assetsLinks,\n marketplaceLinks,\n} from 'utils/links';\nimport { WorkspaceProvider } from 'store/WorkspaceContext';\nimport { OnboardingProvider } from 'store/OnboardingContext';\nimport { OrganizationProvider } from 'store/OrganizationContext';\nimport Logout from './Auth/Logout';\n\ninterface SSOParams {\n provider: 'github' | 'google';\n}\n\nfunction Routes(): JSX.Element {\n const { pathname } = useLocation();\n\n /**\n * Scroll to top on every react-router transition\n */\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return (\n <Switch>\n {/* Redirects for pages that have been moved permanently */}\n {/* Permanent redirects start */}\n <Redirect exact from=\"/login\" to={authLinks.login()} />\n <Redirect exact from=\"/signup\" to={authLinks.signup()} />\n <Redirect\n exact\n from=\"/forgot-password\"\n to={authRouterPaths.forgotPassword}\n />\n <Redirect exact from=\"/explore/arrays\" to={marketplaceLinks.arrays()} />\n <Redirect\n exact\n from=\"/explore/notebooks\"\n to={marketplaceLinks.notebooks()}\n />\n <Redirect exact from=\"/explore/udfs\" to={marketplaceLinks.udfs()} />\n <Redirect\n exact\n from=\"/explore/dashboards\"\n to={marketplaceLinks.dashboards()}\n />\n <Redirect\n exact\n from=\"/explore/ml_models\"\n to={marketplaceLinks.mlModels()}\n />\n <Redirect exact from=\"/explore/files\" to={marketplaceLinks.files()} />\n <Redirect exact from=\"/explore/groups\" to={marketplaceLinks.groups()} />\n <Redirect\n exact\n from=\"/explore/taskgraphs\"\n to={marketplaceLinks.taskGraphs()}\n />\n\n {/* Assets route redirects */}\n <Redirect from=\"/arrays/me\" to={assetsLinks.arrays.my()} />\n <Redirect from=\"/arrays/shared\" to={assetsLinks.arrays.shared()} />\n <Redirect from=\"/arrays/public\" to={marketplaceLinks.arrays()} />\n <Redirect from=\"/files/me\" to={assetsLinks.files.my()} />\n <Redirect from=\"/files/shared\" to={assetsLinks.files.shared()} />\n <Redirect from=\"/files/public\" to={marketplaceLinks.files()} />\n <Redirect from=\"/notebooks/me\" to={assetsLinks.notebooks.my()} />\n <Redirect from=\"/notebooks/shared\" to={assetsLinks.notebooks.shared()} />\n <Redirect from=\"/notebooks/public\" to={marketplaceLinks.notebooks()} />\n <Redirect from=\"/dashboards/me\" to={assetsLinks.dashboards.my()} />\n <Redirect\n from=\"/dashboards/shared\"\n to={assetsLinks.dashboards.shared()}\n />\n <Redirect from=\"/udfs/me\" to={assetsLinks.udfs.my()} />\n <Redirect from=\"/udfs/shared\" to={assetsLinks.udfs.shared()} />\n <Redirect from=\"/udfs/public\" to={marketplaceLinks.udfs()} />\n <Redirect from=\"/taskgraphs/me\" to={assetsLinks.taskGraphs.my()} />\n <Redirect\n from=\"/taskgraphs/shared\"\n to={assetsLinks.taskGraphs.shared()}\n />\n <Redirect from=\"/taskgraphs/public\" to={marketplaceLinks.taskGraphs()} />\n <Redirect from=\"/vcf/me\" to={assetsLinks.vcf.my()} />\n <Redirect from=\"/vcf/shared\" to={assetsLinks.vcf.shared()} />\n <Redirect from=\"/vcf/public\" to={marketplaceLinks.vcf()} />\n <Redirect from=\"/soma/me\" to={assetsLinks.soma.my()} />\n <Redirect from=\"/soma/shared\" to={assetsLinks.soma.shared()} />\n <Redirect from=\"/soma/public\" to={marketplaceLinks.soma()} />\n <Redirect\n from=\"/biomedical-imaging/me\"\n to={assetsLinks.biomedicalImaging.my()}\n />\n <Redirect\n from=\"/biomedical-imaging/shared\"\n to={assetsLinks.biomedicalImaging.shared()}\n />\n <Redirect\n from=\"/biomedical-imaging/public\"\n to={marketplaceLinks.biomedicalImaging()}\n />\n <Redirect from=\"/mlmodels/me\" to={assetsLinks.mlModels.my()} />\n <Redirect from=\"/mlmodels/shared\" to={assetsLinks.mlModels.shared()} />\n <Redirect from=\"/mlmodels/public\" to={marketplaceLinks.mlModels()} />\n <Redirect from=\"/vector-search/me\" to={assetsLinks.vectorSearch.my()} />\n <Redirect\n from=\"/vector-search/shared\"\n to={assetsLinks.vectorSearch.shared()}\n />\n <Redirect\n from=\"/vector-search/public\"\n to={marketplaceLinks.vectorSearch()}\n />\n <Redirect from=\"/point-cloud/me\" to={assetsLinks.pointCloud.my()} />\n <Redirect\n from=\"/point-cloud/shared\"\n to={assetsLinks.pointCloud.shared()}\n />\n <Redirect from=\"/point-cloud/public\" to={marketplaceLinks.pointCloud()} />\n <Redirect from=\"/geometry/me\" to={assetsLinks.geometry.my()} />\n <Redirect from=\"/geometry/shared\" to={assetsLinks.geometry.shared()} />\n <Redirect from=\"/geometry/public\" to={marketplaceLinks.geometries()} />\n <Redirect from=\"/raster/me\" to={assetsLinks.raster.my()} />\n <Redirect from=\"/raster/shared\" to={assetsLinks.raster.shared()} />\n <Redirect from=\"/raster/public\" to={marketplaceLinks.raster()} />\n <Redirect from=\"/groups/me\" to={assetsLinks.groups.my()} />\n <Redirect from=\"/groups/shared\" to={assetsLinks.groups.shared()} />\n <Redirect from=\"/groups/public\" to={marketplaceLinks.groups()} />\n {/* Assets route redirects end */}\n {/* Permanent redirects end */}\n\n <Route path={authRouterPaths.logout} component={Logout} />\n <Route\n path=\"/reset_password\"\n render={(props: RouteComponentProps<any>): React.ReactElement => {\n return (\n <Redirect\n to={authRouterPaths.resetPassword + props.location.search}\n />\n );\n }}\n />\n <Redirect\n exact\n from=\"/email-not-confirmed\"\n to={authRouterPaths.emailNotConfirmed}\n />\n <Route\n path=\"/confirm_email\"\n render={(props: RouteComponentProps<any>): React.ReactElement => {\n return (\n <Redirect\n to={authRouterPaths.confirmEmail + props.location.search}\n />\n );\n }}\n />\n <Route\n path=\"/sso/callback/:provider\"\n render={(\n props: RouteComponentProps<{ provider: string }>\n ): React.ReactNode => {\n return (\n <Redirect\n to={\n authLinks.ssoProvider({\n provider: (props as RouteComponentProps<SSOParams>).match\n .params.provider,\n }) + props.location.search\n }\n />\n );\n }}\n />\n\n <Route path={authRouterPaths.root} component={Auth} />\n <Route path={oauth2RouterPaths.root} component={OAuth2} />\n\n <Route path={callbackRouterPaths.root} render={() => <Callbacks />} />\n <Route\n path={rootPath}\n render={(): JSX.Element => (\n <WorkspaceProvider>\n <OrganizationProvider>\n <OnboardingProvider>\n <Console />\n </OnboardingProvider>\n </OrganizationProvider>\n </WorkspaceProvider>\n )}\n />\n\n <Route render={(): JSX.Element => <NotFound />} />\n </Switch>\n );\n}\n\nexport default withErrorBoundary(Routes);\n","import './Snackbar.scss';\nimport React from 'react';\nimport Text from 'components/Text';\nimport IconClose from 'components/Svg/icons/IconClose';\nimport IconCheckFilled from 'components/Svg/icons/IconCheckFilled';\nimport IconClosefilled from 'components/Svg/icons/IconClosefilled';\nimport { motion } from 'framer-motion';\nimport Button from 'components/v2/Button';\nimport { Icon } from 'components/Svg';\nimport classNames from 'classnames';\n\nexport type SnackbarVariant = 'success' | 'error';\n\nexport type SnackbarDismissMode = 'auto' | 'manual';\n\ninterface SnackbarActionBase {\n text: string;\n icon?: Icon;\n iconRight?: boolean;\n}\n\ninterface SnackbarActionWithOnClick extends SnackbarActionBase {\n onClick: () => void;\n to?: never;\n}\n\ninterface SnackbarActionWithLink extends SnackbarActionBase {\n onClick?: never;\n to: string;\n}\n\nexport type SnackbarAction = SnackbarActionWithOnClick | SnackbarActionWithLink;\n\nexport interface SnackbarProps {\n title: React.ReactNode;\n description?: React.ReactNode;\n variant?: SnackbarVariant;\n id: string;\n onDismiss: (id: string) => void;\n dismissMode?: SnackbarDismissMode;\n timesCalled?: number;\n action?: SnackbarAction;\n}\n\nconst Snackbar: React.FC<SnackbarProps> = (props) => {\n const {\n variant = 'success',\n title,\n description,\n id,\n onDismiss,\n dismissMode = 'auto',\n timesCalled,\n action,\n } = props;\n\n return (\n <motion.div\n variants={{\n initial: { x: '-100%' },\n animate: { x: 0 },\n exit: { x: '-100%' },\n }}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n transition={{ duration: 0.2 }}\n className={classNames('TDB-Snackbar', `TDB-Snackbar--${variant}`, {\n 'TDB-Snackbar--auto-dismiss': dismissMode === 'auto',\n })}\n role={variant === 'error' ? 'alert' : 'status'}\n >\n <div className=\"TDB-Snackbar__ContentWrapper\">\n <div className=\"TDB-Snackbar__Gradient\" />\n <div className=\"TDB-Snackbar__Content\">\n <div className=\"TDB-Snackbar__Icon\">\n {variant === 'success' && (\n <IconCheckFilled colorToken=\"text-action-brand\" size=\"3rem\" />\n )}\n {variant === 'error' && (\n <IconClosefilled colorToken=\"text-error\" size=\"3rem\" />\n )}\n </div>\n <div className=\"TDB-Snackbar__Text\">\n <Text\n color=\"text-main-primary\"\n fontWeight=\"bold\"\n className=\"TDB-Snackbar__Title\"\n dataTestId=\"snackbar-title\"\n >\n {title}\n </Text>\n {description && (\n <Text\n color=\"text-main-secondary\"\n className=\"TDB-Snackbar__Description\"\n fontWeight=\"semi-bold\"\n variant=\"subtext\"\n dataTestId=\"snackbar-description\"\n >\n {description}\n </Text>\n )}\n </div>\n {action && (\n <Button\n variant=\"plain\"\n size=\"large\"\n onClick={action.onClick}\n icon={!action.iconRight ? action.icon : undefined}\n iconRight={!!action.iconRight ? action.icon : undefined}\n >\n {action.text}\n </Button>\n )}\n </div>\n <button\n className=\"TDB-Snackbar__DismissButton\"\n onClick={() => onDismiss(id)}\n data-testid=\"dismiss-snackbar-button\"\n >\n <IconClose size=\"2rem\" colorToken=\"text-main-secondary\" />\n </button>\n {dismissMode === 'auto' && (\n <div className=\"TDB-Snackbar__Timer\" key={timesCalled}>\n <div className=\"TDB-Snackbar__Timer__Indicator\" />\n </div>\n )}\n </div>\n </motion.div>\n );\n};\n\nexport default Snackbar;\n","import Snackbar from './Snackbar';\n\nexport default Snackbar;\nexport * from './Snackbar';\n","import SnackbarContainer from './SnackbarContainer';\n\nexport default SnackbarContainer;\n","import React from 'react';\nimport { AnimatePresence } from 'framer-motion';\nimport useSnackbar from 'store/SnackbarStore';\nimport Snackbar from 'components/Snackbar';\nimport './SnackbarContainer.scss';\n\nconst SnackbarContainer: React.FC<React.PropsWithChildren> = ({ children }) => {\n const snackbars = useSnackbar((state) => state.snackbars);\n const dismissSnackbar = useSnackbar((state) => state.dismissSnackbar);\n\n return (\n <>\n {children}\n <div className=\"TDB-SnackbarContainer\">\n <AnimatePresence>\n {snackbars.map((snackbar) => {\n return (\n <Snackbar\n key={snackbar.id}\n {...snackbar}\n onDismiss={dismissSnackbar}\n />\n );\n })}\n </AnimatePresence>\n </div>\n </>\n );\n};\n\nexport default SnackbarContainer;\n","import React from 'react';\nimport Cookies from 'components/Cookies';\nimport Routes from './pages/Routes';\nimport { Router, BrowserRouter } from 'react-router-dom';\nimport ErrorBoundary from 'components/ErrorBoundary';\nimport history from 'utils/helpers/history';\nimport queryClient from 'utils/helpers/queryClient';\nimport { ThemeProvider } from 'store/ThemeContext/ThemeContext';\nimport { QueryClientProvider } from '@tanstack/react-query';\nimport SnackbarContainer from 'containers/SnackbarContainer';\nimport 'App.scss';\nimport { UserProvider } from 'store/UserContext';\nimport { updateRedirectToAfterLogin } from 'utils/helpers/history/history';\nimport useMount from 'hooks/useMount';\n\nfunction App(): JSX.Element {\n useMount(() => {\n // Saves the initial pathname visited to session storage\n // This value will be retrieved on a successful login to redirect the user to that path\n updateRedirectToAfterLogin(\n history.location.pathname,\n history.location.search\n );\n });\n\n /* Prepend BASE_PATH to support serving the UI from a subpath i.e. /ui (for enterprise) */\n return (\n <BrowserRouter basename={global.BASE_PATH}>\n <Router history={history}>\n <ThemeProvider>\n <SnackbarContainer />\n <ErrorBoundary>\n <QueryClientProvider client={queryClient}>\n <UserProvider>\n <Routes />\n <Cookies />\n </UserProvider>\n </QueryClientProvider>\n </ErrorBoundary>\n </ThemeProvider>\n </Router>\n </BrowserRouter>\n );\n}\n\nexport default App;\n","/* eslint-disable */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import axios from 'axios';\nimport prependBasePath from 'utils/helpers/prependBasePath';\n\nfunction setupAxios(): void {\n // Prepend BASE_PATH to support serving the UI from a subpath i.e. /ui (for enterprise)\n axios.defaults.baseURL = prependBasePath('/v1/api');\n axios.defaults.withCredentials = true;\n axios.defaults.timeout = 120000;\n axios.defaults.headers.common['X-CSRF-TOKEN'] = global.CSRF_TOKEN;\n}\n\nexport default setupAxios;\n","function setupEnv(): void {\n (global as any).__DEV__ = process.env.REACT_APP_TILEDB_ENV === 'development';\n (global as any).__PROD__ = process.env.REACT_APP_TILEDB_ENV === 'production';\n (global as any).__STAGE__ = process.env.REACT_APP_TILEDB_ENV === 'staging';\n (global as any).__TEST__ = process.env.REACT_APP_TILEDB_ENV === 'test';\n (global as any).__ENTERPRISE__ = process.env.REACT_APP_ENTERPRISE === 'true';\n (global as any).__CI__ = process.env.REACT_APP_CI === 'true';\n}\n\nexport default setupEnv;\n","import * as Sentry from '@sentry/react';\n\nconst { REACT_APP_SENTRY_RELEASE } = process.env;\n\n/**\n * Initiates Sentry\n */\nfunction setupSentry(): void {\n const { SENTRY_DSN, SENTRY_ENVIRONMENT } = global; // from window object\n\n const isValidDSN = SENTRY_DSN.match(/^https:\\/\\/.*@sentry.io.*/);\n\n if (isValidDSN) {\n Sentry.init({\n dsn: SENTRY_DSN,\n release: REACT_APP_SENTRY_RELEASE,\n environment: SENTRY_ENVIRONMENT,\n ignoreErrors: [\n /**\n * Ignore exceptions for failed requests\n */\n /^Request failed with status code/,\n ],\n });\n }\n}\n\nexport default setupSentry;\n","import sessionStorageKeys from 'utils/constants/sessionStorageKeys';\nimport isStorageSupported from 'utils/helpers/isStorageSupported';\n\n// resetChunkReloadState checks if window has reloaded because of a chunk error\n// if it is refreshed we want to reset this state after some time\n// since user may keep their window open until our next release\nconst resetChunkReloadState = () => {\n // do nothing if session storage is not supported or disabled\n if (!isStorageSupported('sessionStorage')) {\n return;\n }\n\n // get refresh state from session storage\n const hasRefreshed = JSON.parse(\n window.sessionStorage.getItem(sessionStorageKeys.LAZY_LOAD_REFRESHED) ||\n 'false'\n );\n\n if (hasRefreshed) {\n // reset state after 1 minute\n // this means that if they get a chunk error after a minute, their page should refresh again\n setTimeout(() => {\n window.sessionStorage.setItem(\n sessionStorageKeys.LAZY_LOAD_REFRESHED,\n 'false'\n );\n }, 1000 * 60);\n }\n};\n\nexport default resetChunkReloadState;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport './polyfills';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport setupAxios from './utils/setup/axios';\nimport setupEnv from './utils/setup/env';\nimport setupSentry from './utils/setup/sentry';\nimport resetChunkReloadState from './utils/setup/resetChunkReloadState';\nimport {\n cleanupUnsetGlobalVariables,\n setDefaultGlobalVariables,\n} from './utils/setup/globalVariables';\n\nsetupEnv();\nsetupAxios();\nsetupSentry();\ncleanupUnsetGlobalVariables();\nsetDefaultGlobalVariables();\nresetChunkReloadState();\n\nconst rootContainer = document.getElementById('app') as HTMLElement;\nconst root = createRoot(rootContainer);\nroot.render(<App />);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { GlobalVariable } from '../constants/GlobalVariable';\ndeclare const global: any;\n\n/**\n * Cleans up any variables in html that has not been set by golang\n *\n * example:\n * var n = \"{{ .TemplateSyntax }}\"\n * will become:\n * var n = \"\"\n *\n * This makes the value falsy\n */\nconst cleanupUnsetGlobalVariables = () => {\n Object.keys(GlobalVariable).forEach((key: string) => {\n const value = global[key];\n /**\n * Overwrite the runtime global variables that are not set, with the ones from env (if set)\n *\n * When running the UI with the dev server,\n * the runtimes global variables are not set, since the html is not served by GO\n * We can use environment variables to set valid values to those global variables for local development\n */\n if (value && value.startsWith('{{ .') && global.__DEV__) {\n global[key] = process.env[`REACT_APP_${key}`] || '';\n }\n });\n};\n\nconst setDefaultGlobalVariables = () => {\n if (__DEV__) {\n /**\n * Disable jupyter in development mode since it doesn't work and causes bugs\n */\n if (!process.env.REACT_APP_LOCAL_JUPYTER) {\n global.JUPYTER_DISABLED = 'true';\n } else {\n global.JUPYTERHUB_URL = process.env.REACT_APP_LOCAL_JUPYTER;\n }\n\n /**\n * If we are in development mode and run with staging proxy, we override REST_SERVER_URL to staging,\n * otherwise use the local dev server.\n */\n if (\n process.env.REACT_APP_DEV_SERVER_PROXY_TARGET ===\n 'https://console.dev.tiledb.io'\n ) {\n global.REST_SERVER_URL = 'https://api.dev.tiledb.io';\n } else {\n global.REST_SERVER_URL = 'http://rest-server:8181';\n }\n\n /**\n * Set Academy iframe url when developing locally\n */\n if (process.env.REACT_APP_ACADEMY_URL) {\n global.ACADEMY_URL =\n process.env.REACT_APP_ACADEMY_URL || global.ACADEMY_URL;\n }\n }\n};\n\nexport { cleanupUnsetGlobalVariables, setDefaultGlobalVariables };\n"],"names":["ChildComponent","PureComponent","render","_jsx","ErrorBoundary","children","this","props","AccessCredentialType","ActivityEventType","ApplicationStatus","ArrayActions","ArrayTaskStatus","ArrayType","AssetAction","AssetBackingType","AssetType","CloudProvider","Datatype","DepthParam","DomainCheckStatus","DomainVerificationStatus","EnabledFeature","FileType","GroupActions","GroupMemberAssetType","GroupMemberType","GroupType","InvitationStatus","InvitationType","NamespaceActions","NamespaceType","NotificationStatus","NotificationType","OnboardingItem","OrganizationRoles","OwnershipLevel","PodStatus","ProductTier","TaskGraphEventType","TaskGraphLogRunLocation","TaskGraphLogStatus","TaskGraphType","TokenScope","AcademyApi_getAcademyLessons$Path","AcademyApi_getAcademyLessonsParamCreator","async","data","options","arguments","length","undefined","localVarUrlObj","globalImportUrl","localVarRequestOptions","method","query","search","headersFromBaseOptions","headers","url","AcademyApi_getAcademyQuestionnaireParamCreator","RequiredError","localVarPath","replace","concat","encodeURIComponent","String","AcademyApi_putAcademyLessonsParamCreator","localVarHeaderParameter","needsSerialization","JSON","stringify","AcademyApi_putAcademyQuestionnaireParamCreator","AcademyApi_getAcademyLessons","localVarAxiosArgs","axiosRequestArgs","axios","request","AcademyApi_getAcademyQuestionnaire","AcademyApi_putAcademyLessons","AcademyApi_putAcademyQuestionnaire","ArrayApi_arrayActivityLog$Path","ArrayApi_arrayActivityLogParamCreator","localVarQueryParameter","ArrayApi_arraysBrowserOwnedGetParamCreator","ArrayApi_arraysBrowserPublicGetParamCreator","ArrayApi_arraysBrowserSharedGetParamCreator","ArrayApi_deleteArrayParamCreator","ArrayApi_deregisterArrayParamCreator","ArrayApi_getActivityLogById$Path","ArrayApi_getActivityLogByIdParamCreator","ArrayApi_getArrayEndTimestamps$Path","ArrayApi_getArrayEndTimestampsParamCreator","ArrayApi_getArrayInfo$Path","ArrayApi_getArrayInfoParamCreator","ArrayApi_getArrayMetaDataParamCreator","ArrayApi_getArraySchema$Path","ArrayApi_getArraySchemaParamCreator","ArrayApi_getArraySharingPolicies$Path","ArrayApi_getArraySharingPoliciesParamCreator","ArrayApi_getFragmentEndTimestamp$Path","ArrayApi_getFragmentEndTimestampParamCreator","ArrayApi_registerArrayParamCreator","ArrayApi_shareArrayParamCreator","ArrayApi_updateArrayInfoParamCreator","ArrayApi_arrayActivityLog","ArrayApi_arraysBrowserOwnedGet","ArrayApi_arraysBrowserPublicGet","ArrayApi_arraysBrowserSharedGet","ArrayApi_deleteArray","ArrayApi_deregisterArray","ArrayApi_getActivityLogById","ArrayApi_getArrayEndTimestamps","ArrayApi_getArrayInfo","ArrayApi_getArrayMetaData","ArrayApi_getArraySchema","ArrayApi_getArraySharingPolicies","ArrayApi_getFragmentEndTimestamp","ArrayApi_registerArray","ArrayApi_shareArray","ArrayApi_updateArrayInfo","ArrayTasksApi_getArrayTask$Path","ArrayTasksApi_getArrayTaskParamCreator","ArrayTasksApi_getArrayTasks$Path","ArrayTasksApi_getArrayTasksParamCreator","ArrayTasksApi_getArrayTask","ArrayTasksApi_getArrayTasks","AssetsApi_changeAssetCredentialsParamCreator","AssetsApi_listAssetAttributesParamCreator","AssetsApi_listAssetSummariesParamCreator","AssetsApi_listAssetsParamCreator","AssetsApi_listPublicAssetsParamCreator","AssetsApi_updateAssetMetadataParamCreator","AssetsApi_changeAssetCredentials","AssetsApi_listAssetAttributes","AssetsApi_listAssetSummaries","AssetsApi_listAssets","AssetsApi_listPublicAssets","AssetsApi_updateAssetMetadata","CredentialsApi_credentialsNamespaceVerifyPostParamCreator","CredentialsApi_credentialsNamespaceVerifyPost","FilesApi_filesNamespaceArrayPreviewGet$Path","FilesApi_filesNamespaceArrayPreviewGetParamCreator","FilesApi_handleCopyNotebookParamCreator","FilesApi_handleUploadFileMultipartParamCreator","localVarFormParams","FormData","append","FilesApi_filesNamespaceArrayPreviewGet","FilesApi_handleCopyNotebook","FilesApi_handleUploadFileMultipart","GroupsApi_createGroupParamCreator","GroupsApi_deleteGroupParamCreator","GroupsApi_deregisterGroupParamCreator","GroupsApi_getGroup$Path","GroupsApi_getGroupParamCreator","GroupsApi_getGroupActivity$Path","GroupsApi_getGroupActivityParamCreator","GroupsApi_getGroupContents$Path","GroupsApi_getGroupContentsParamCreator","GroupsApi_getGroupContentsFilters$Path","GroupsApi_getGroupContentsFiltersParamCreator","GroupsApi_getGroupMetadataParamCreator","GroupsApi_getGroupSharingPolicies$Path","GroupsApi_getGroupSharingPoliciesParamCreator","GroupsApi_listOwnedGroupsParamCreator","GroupsApi_listPublicGroupsParamCreator","GroupsApi_listSharedGroupsParamCreator","GroupsApi_moveGroupContentsParamCreator","GroupsApi_registerGroupParamCreator","GroupsApi_shareGroupParamCreator","GroupsApi_updateGroupParamCreator","GroupsApi_updateGroupContentsParamCreator","GroupsApi_createGroup","GroupsApi_deleteGroup","GroupsApi_deregisterGroup","GroupsApi_getGroup","GroupsApi_getGroupActivity","GroupsApi_getGroupContents","GroupsApi_getGroupContentsFilters","GroupsApi_getGroupMetadata","GroupsApi_getGroupSharingPolicies","GroupsApi_listOwnedGroups","GroupsApi_listPublicGroups","GroupsApi_listSharedGroups","GroupsApi_moveGroupContents","GroupsApi_registerGroup","GroupsApi_shareGroup","GroupsApi_updateGroup","GroupsApi_updateGroupContents","IngestionApi_ingestBioImagingParamCreator","IngestionApi_ingestFileParamCreator","IngestionApi_ingestPointcloudParamCreator","IngestionApi_ingestSOMAParamCreator","IngestionApi_ingestVCFParamCreator","IngestionApi_ingestBioImaging","IngestionApi_ingestFile","IngestionApi_ingestPointcloud","IngestionApi_ingestSOMA","IngestionApi_ingestVCF","InvitationApi_acceptInvitationParamCreator","InvitationApi_cancelJoinOrganizationParamCreator","InvitationApi_cancelShareArrayParamCreator","InvitationApi_cancelShareGroupByInviteParamCreator","InvitationApi_fetchInvitationsParamCreator","InvitationApi_getInvitationDetails$Path","InvitationApi_getInvitationDetailsParamCreator","InvitationApi_sendArrayInvitationsParamCreator","InvitationApi_sendOrganizationInvitationsParamCreator","InvitationApi_shareGroupByInviteParamCreator","InvitationApi_acceptInvitation","InvitationApi_cancelJoinOrganization","InvitationApi_cancelShareArray","InvitationApi_cancelShareGroupByInvite","InvitationApi_fetchInvitations","InvitationApi_getInvitationDetails","InvitationApi_sendArrayInvitations","InvitationApi_sendOrganizationInvitations","InvitationApi_shareGroupByInvite","InvoiceApi_getPastInvoices$Path","InvoiceApi_getPastInvoicesParamCreator","InvoiceApi_getPastInvoices","MlModelApi_getMLModelPreview$Path","MlModelApi_getMLModelPreviewParamCreator","MlModelApi_getMLModelPreview","NotebookApi_getNotebookServerStatus$Path","NotebookApi_getNotebookServerStatusParamCreator","NotebookApi_handleUploadNotebookParamCreator","NotebookApi_shutdownNotebookServerParamCreator","NotebookApi_getNotebookServerStatus","NotebookApi_handleUploadNotebook","NotebookApi_shutdownNotebookServer","NotebooksApi_notebooksNamespaceArrayDownloadGetParamCreator","NotebooksApi_notebooksNamespaceArrayPreviewGet$Path","NotebooksApi_notebooksNamespaceArrayPreviewGetParamCreator","NotebooksApi_notebooksNamespaceArrayPrunePostParamCreator","NotebooksApi_notebooksNamespaceArrayDownloadGet","NotebooksApi_notebooksNamespaceArrayPreviewGet","NotebooksApi_notebooksNamespaceArrayPrunePost","NotificationsApi_changeNotificationStatusParamCreator","NotificationsApi_deleteNotificationsParamCreator","NotificationsApi_getNotificationsCountParamCreator","NotificationsApi_listNotificationsParamCreator","NotificationsApi_markAllNotificationsAsReadParamCreator","NotificationsApi_changeNotificationStatus","NotificationsApi_deleteNotifications","NotificationsApi_getNotificationsCount","NotificationsApi_listNotifications","NotificationsApi_markAllNotificationsAsRead","OrganizationApi_checkSSODomainParamCreator","OrganizationApi_createOrganizationParamCreator","OrganizationApi_createSSODomainParamCreator","OrganizationApi_deleteOrganizationParamCreator","OrganizationApi_deleteSSODomainParamCreator","OrganizationApi_deleteUserFromOrganizationParamCreator","OrganizationApi_fetchAllOrganizations$Path","OrganizationApi_fetchAllOrganizationsParamCreator","OrganizationApi_getBillingOverview$Path","OrganizationApi_getBillingOverviewParamCreator","OrganizationApi_getNamespaceAutocompleteParamCreator","OrganizationApi_getOrganization$Path","OrganizationApi_getOrganizationParamCreator","OrganizationApi_getOrganizationsAutocompleteParamCreator","OrganizationApi_getSSODomain$Path","OrganizationApi_getSSODomainParamCreator","OrganizationApi_getSSODomains$Path","OrganizationApi_getSSODomainsParamCreator","OrganizationApi_updateOrganizationParamCreator","OrganizationApi_updateSSODomainParamCreator","OrganizationApi_updateUserInOrganizationParamCreator","OrganizationApi_checkSSODomain","OrganizationApi_createOrganization","OrganizationApi_createSSODomain","OrganizationApi_deleteOrganization","OrganizationApi_deleteSSODomain","OrganizationApi_deleteUserFromOrganization","OrganizationApi_fetchAllOrganizations","OrganizationApi_getBillingOverview","OrganizationApi_getNamespaceAutocomplete","OrganizationApi_getOrganization","OrganizationApi_getOrganizationsAutocomplete","OrganizationApi_getSSODomain","OrganizationApi_getSSODomains","OrganizationApi_updateOrganization","OrganizationApi_updateSSODomain","OrganizationApi_updateUserInOrganization","OverviewApi_getOverview$Path","OverviewApi_getOverviewParamCreator","OverviewApi_getOverview","RegisteredTaskGraphsApi_getRegisteredTaskGraph$Path","RegisteredTaskGraphsApi_getRegisteredTaskGraphParamCreator","RegisteredTaskGraphsApi_resubmitTaskGraphExecutionParamCreator","RegisteredTaskGraphsApi_getRegisteredTaskGraph","RegisteredTaskGraphsApi_resubmitTaskGraphExecution","TaskGraphLogsApi_getTaskGraphLog$Path","TaskGraphLogsApi_getTaskGraphLogParamCreator","TaskGraphLogsApi_getTaskgraphLogFilters$Path","TaskGraphLogsApi_getTaskgraphLogFiltersParamCreator","TaskGraphLogsApi_listTaskGraphLogs$Path","TaskGraphLogsApi_listTaskGraphLogsParamCreator","Date","toISOString","TaskGraphLogsApi_retryTaskGraphExecutionParamCreator","TaskGraphLogsApi_stopTaskGraphParamCreator","TaskGraphLogsApi_getTaskGraphLog","TaskGraphLogsApi_getTaskgraphLogFilters","TaskGraphLogsApi_listTaskGraphLogs","TaskGraphLogsApi_retryTaskGraphExecution","TaskGraphLogsApi_stopTaskGraph","TaskGraphsApi_getTaskGraph$Path","TaskGraphsApi_getTaskGraphParamCreator","TaskGraphsApi_getTaskGraph","UdfApi_handleCopyUDFParamCreator","UdfApi_udfsNamespaceArrayPreviewGet$Path","UdfApi_udfsNamespaceArrayPreviewGetParamCreator","UdfApi_handleCopyUDF","UdfApi_udfsNamespaceArrayPreviewGet","UserApi_addCredentialParamCreator","UserApi_changePasswordParamCreator","UserApi_checkLoginCookie$Path","UserApi_checkLoginCookieParamCreator","UserApi_confirmEmailParamCreator","UserApi_deleteCredentialParamCreator","UserApi_deleteOnboardingItemsParamCreator","UserApi_deleteUserParamCreator","UserApi_getChargeOperationsAllowed$Path","UserApi_getChargeOperationsAllowedParamCreator","UserApi_getOnboardingItems$Path","UserApi_getOnboardingItemsParamCreator","UserApi_getOnboardingState$Path","UserApi_getOnboardingStateParamCreator","UserApi_getPaymentDetails$Path","UserApi_getPerDomainEndpointParamCreator","UserApi_getSession$Path","UserApi_getSessionParamCreator","UserApi_getTokenScopes$Path","UserApi_getTokenScopesParamCreator","UserApi_getUser$Path","UserApi_getUserParamCreator","UserApi_getUserMetaStatus$Path","UserApi_getUserMetaStatusParamCreator","UserApi_getUserPasswordEntropyParamCreator","UserApi_getUsersAutocompleteParamCreator","UserApi_initiateResetUserPasswordParamCreator","UserApi_listCredentials$Path","UserApi_listCredentialsParamCreator","UserApi_loginParamCreator","UserApi_logoutParamCreator","UserApi_oAuth2ConsentParamCreator","UserApi_oAuth2ConsentCheckParamCreator","UserApi_oauth2LoginParamCreator","UserApi_oauth2LoginCheckParamCreator","UserApi_patchUserMetaStatusParamCreator","UserApi_requestCreditsParamCreator","UserApi_requestTokenParamCreator","UserApi_resendConfirmEmailParamCreator","UserApi_resetUserPasswordParamCreator","UserApi_revokeTokenParamCreator","UserApi_setOnboardingItemsParamCreator","UserApi_setPaymentDetailsParamCreator","UserApi_signInPerDomainParamCreator","UserApi_signInWithGithubParamCreator","UserApi_signInWithGoogleParamCreator","UserApi_signInWithOktaParamCreator","UserApi_signInWithStripeParamCreator","UserApi_tokensGet$Path","UserApi_tokensGetParamCreator","UserApi_updateCredentialParamCreator","UserApi_userRegistrationParamCreator","UserApi_userUpdateParamCreator","UserApi_addCredential","UserApi_changePassword","UserApi_checkLoginCookie","UserApi_confirmEmail","UserApi_deleteCredential","UserApi_deleteOnboardingItems","UserApi_deleteUser","UserApi_getChargeOperationsAllowed","UserApi_getOnboardingItems","UserApi_getOnboardingState","UserApi_getPerDomainEndpoint","UserApi_getSession","UserApi_getTokenScopes","UserApi_getUser","UserApi_getUserMetaStatus","UserApi_getUserPasswordEntropy","UserApi_getUsersAutocomplete","UserApi_initiateResetUserPassword","UserApi_listCredentials","UserApi_login","UserApi_logout","UserApi_oAuth2Consent","UserApi_oAuth2ConsentCheck","UserApi_oauth2Login","UserApi_oauth2LoginCheck","UserApi_patchUserMetaStatus","UserApi_requestCredits","UserApi_requestToken","UserApi_resendConfirmEmail","UserApi_resetUserPassword","UserApi_revokeToken","UserApi_setOnboardingItems","UserApi_setPaymentDetails","UserApi_signInPerDomain","UserApi_signInWithGithub","UserApi_signInWithGoogle","UserApi_signInWithOkta","UserApi_signInWithStripe","UserApi_tokensGet","UserApi_updateCredential","UserApi_userRegistration","UserApi_userUpdate","Error","constructor","field","msg","super","name","createSvgIcon","d","fillRule","clipRule","_jsxs","_Fragment","assetTypeIcon","Array","IconArray","Bioimg","IconBiomedicalImaging","Dashboard","IconDashboard","File","IconFile","Geometry","IconGeometry","Group","IconGroup","MlModel","IconMLModel","Notebook","IconNotebook","Pointcloud","IconPointCloud","Raster","IconRaster","RegisteredTaskGraph","IconTaskGraph","Soma","IconSOMA","UserDefinedFunction","IconUDF","Vcf","IconVCF","VectorSearch","IconVectorSearch","mimeTypeIcon","MimeType","CSV","IconCSV","DOCX","IconDOCX","GIF","IconGIF","GZIP","IconZIP","ZIP","HDF","IconHDF","HTML","IconHTML","JPEG","IconJPEG","IconJSON","MLModel","MP4","IconMP4","OctetStream","PDF","IconPDF","PNG","IconPNG","RegisterdTaskGraph","SOMA","TAR","IconTAR","TIFF","IconTIFF","TXT","IconTXT","UDF","VCARD","IconVCard","WAV","IconWAV","XML","IconXML","sluggifyMimeType","mimeType","assetType","active","fill","className","size","IconComponent","MimeTypeIconComponent","classNames","styles","isLoggedIn","useUserContext","useMemo","history","authLinks","login","getFirstLetter","namespace","toUpperCase","Avatar","logo","rounded","ariaLabel","dataTestId","imgError","setImgError","useState","typographySize","Typography","fontSize","fontWeight","alt","src","onError","condition","left","right","_ref","content","interactive","variant","placement","trigger","strategy","handleCloseDialog","visible","dataCy","preventCloseForClassName","dataTestID","preventOverflow","referenceElement","setReferenceElement","popperElement","setPopperElement","attributes","usePopper","modifiers","offset","mainAxis","tooltipRef","useRef","manualMode","hoverMode","clickMode","showDialog","toggleDialog","useOnClickOutside","ignoreClass","ref","onMouseEnter","onMouseLeave","onClick","visibility","style","popper","Component","state","hasError","message","type","eventId","componentDidCatch","error","info","setState","Sentry","scope","setExtras","handleResolve","callback","ForbiddenError","Placeholder","graphic","title","description","actions","push","rootPath","NotFoundError","ChunkLoadError","window","location","reload","withRouter","CustomErrorBoundary","React","errorInfo","_this$props$onError","_this$props","call","fallbackContent","Text","as","InputText","placeholder","disabled","initialValue","onChange","autoFocus","tabIndex","autocomplete","Icon","debounceDelay","id","rest","inputValue","setInputValue","inputType","setInputType","inputRef","useFocus","hasFocus","setFocus","isPasswordType","debouncedOnChange","debounce","e","current","useEffect","colorToken","value","autoComplete","required","onFocus","onBlur","target","toggleType","IconEye","IconEyeHidden","defaultProps","Head","map","child","document","onScrollEnd","loading","triggerOffset","getRef","useScrollPosition","result","scrollTop","scrollHeight","height","useMount","Spinner","getAnimationData","loaderDotsOnly","loaderBracketsT","Loader","speed","divRef","lottie","Lottie","container","renderer","loop","autoplay","animationData","setSpeed","width","Page","noPadding","maxWidth","showFallback","requiredPermission","permissions","includes","IconLoadCircle","iconProps","Svg","fillColor","focusable","viewBox","path","to","color","align","href","hoverEffect","ellipsis","noWrap","elementRef","Link","variantClassName","fontWeightClassName","hoverEffectClassName","textIsTruncated","element","clientWidth","scrollWidth","textAlign","reactNodeToString","TooltipText","handleCloseTooltip","noArrow","backgroundColor","showTooltip","toggleTooltip","role","isArray","s","i","isOfType","isFunction","isRegex","Object","prototype","toString","slice","isObject","isUndefined","isNull","equal","index","equalArray","Map","_c","__values","entries","_d","next","done","has","_e","_f","get","equalMap","Set","_b","equalSet","ArrayBuffer","isView","byteLength","view1","DataView","buffer","view2","getUint8","equalArrayBuffer","source","flags","valueOf","leftKeys","keys","rightKeys","hasOwnProperty","key","$$typeof","Number","isNaN","DOM_PROPERTIES_TO_CHECK","objectTypes","primitiveTypes","getObjectType","objectTypeName","test","isObjectOfType","is","array","plainFunction","tagType","arrayOf","predicate","function","every","asyncGeneratorFunction","asyncFunction","bigint","boolean","date","defined","domElement","object","plainObject","nodeType","string","nodeName","property","empty","set","generator","iterable","throw","generatorFunction","instanceOf","instance","class_","getPrototypeOf","nullOrUndefined","Symbol","iterator","nan","null","number","numericString","oneOf","indexOf","primitive","promise","propertyOf","regexp","symbol","weakMap","weakSet","compareNumbers","previousData","actual","previous","nested","changed","compareValues","primary","secondary","isEqualPredicate","some","hasExtraKeys","isSameType","hasValue","hasEntry","checkEquality","getIterables","_a","TypeError","arguments_","_i","canHaveLength","input","includesOrEqualsTo","previousValue","split","reduce","acc","treeChanges","hasActual","hasPrevious","leftComparator","rightComparator","added","changedFrom","changedTo","decreased","emptied","filled","increased","removed","src_default","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","Promise","fn","called","resolve","then","scheduled","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getComputedStyle","getParentNode","parentNode","host","getScrollParent","body","overflow","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","isOffsetContainer","element1root","getScroll","upperSide","html","scrollingElement","getBordersSize","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","top","getBoundingClientRect","rect","scrollLeft","bottom","sizes","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","refRect","rects","sortedAreas","sort","a","b","area","filteredAreas","filter","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","runModifiers","ends","prop","findIndex","cur","match","obj","forEach","warn","enabled","update","isDestroyed","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","charAt","prefix","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListener","isNumeric","n","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","splitRegex","ops","op","mergeWithPrevious","str","toValue","index2","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","_extends","transformProp","popperStyles","transform","priority","escapeWithReference","min","floor","opSide","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","defineProperty","_data$offsets$arrow","round","flipped","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","hide","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrowStyles","setAttribute","modifierOptions","Defaults","Popper","requestAnimationFrame","_this","bind","jquery","onLoad","Utils","global","PopperUtils","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","Constructor","_defineProperties","descriptor","configurable","writable","_createClass","protoProps","staticProps","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","__proto__","p","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","self","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","DEFAULTS","STATUS","INIT","IDLE","OPENING","OPEN","CLOSING","ERROR","canUseDOM","ExecutionEnvironment","isReact16","ReactDOM","isMobile","log","_ref$warn","_ref$debug","debug","logFn","console","groupCollapsed","groupEnd","noop","ReactFloaterPortal","_React$Component","_super","appendNode","renderPortal","zIndex","createElement","appendChild","_this$props2","setRef","_this$props3","hasChildren","renderReact16","PropTypes","FloaterArrow","pointerEvents","startsWith","points","setArrowRef","_styles$arrow","display","margin","spread","parentStyle","xmlns","_excluded$1","FloaterCloseBtn","handleClick","preserveAspectRatio","propTypes","FloaterContainer","footer","open","positionWrapper","showCloseButton","output","close","Floater","disableAnimation","component","hideArrow","status","floater","floaterCentered","floaterClosing","floaterOpening","floaterWithAnimation","floaterWithComponent","closeFn","setFloaterRef","classes","join","ReactFloaterWrapper","handleMouseEnter","handleMouseLeave","setChildRef","setWrapperRef","count","refProp","only","defaultOptions","_excluded","POSITIONING_PROPS","ReactFloater","arrowRef","childRef","floaterRef","wrapperRef","wrapperPopper","newStatus","_this$state","toggle","clearTimeout","eventDelayTimeout","eventDelay","_this$state2","setTimeout","currentPlacement","needsUpdate","wrapperOptions","statusWrapper","_isMounted","hasMounted","_this$props5","hasTarget","isControlled","initPopper","prevProps","prevState","forceStatus","_this$props6","autoOpen","_treeChanges","changeWrapperPosition","cb","_nextCB","capture","off","on","once","handleTransitionEnd","rebuildPopper","_this2","_this$props7","disableFlip","getPopper","flipBehavior","_this$options","offsetOptions","_this2$floaterRef","isConnected","wrapperOffset","_this3","floaterRefInterval","setInterval","_this3$floaterRef","clearInterval","nextStatus","ReactFloaterDebug","_this$props8","disableHoverToClick","deepmerge","wrapperStyles","_this4","_this$state3","nextStyles","wrapper","cursor","flexDirection","wrapperPosition","opacity","transition","minHeight","minWidth","borderBottom","paddingBottom","paddingRight","border","borderRadius","outline","WebkitAppearance","borderTop","paddingTop","getStyles","targetStyles","_this$state4","_this$props9","wrapperInPortal","wrapperAsChildren","assign","isRequiredIf","ACTIONS","START","STOP","RESET","PREV","NEXT","GO","CLOSE","SKIP","UPDATE","EVENTS","LIFECYCLE","READY","BEACON","TOOLTIP","COMPLETE","WAITING","RUNNING","PAUSED","SKIPPED","FINISHED","createPortal","getBrowser","browser","opera","InstallTrigger","chrome","getText","root","recurse","c","hexToRGB","hex","properHex","m","r","g","exec","hideBeacon","disableBeacon","isEqual","hasReactElement","isValidElement","hasUndefined","isSameNode","isLegacy","defaultState","action","controlled","lifecycle","validKeys","createStore","store","Store","_ref$continuous","continuous","stepIndex","_ref$steps","steps","_steps","_this$getState","getState","listener","hasValidKeys","getNextState","nextIndex","_this$getState2","advance","_this$getState3","_this$getState4","_this$getState5","getSteps","_this$getState6","_this$getState8","restart","setSteps","nextState","initial","_state$nextState","hasUpdatedState","force","_this$getState11","newIndex","oldState","go","prev","reset","skip","getDocumentHeight","_document","getElement","skipFix","forListener","scrollDoc","hasCustomScrollParent","hasPosition","HTMLElement","getTopOffset","offsetTop","getScrollTo","hasCustomOffsetParent","validate","checkType","propName","componentName","propFullName","componentNameSafe","propFullNameSafe","_len","args","_key","chainedCheckType","createChainableTypeChecker","propValue","isValidElementType","ownProps","Element","ForwardRef","typeOf","arrowColor","beaconSize","overlayColor","primaryColor","spotlightShadow","textColor","buttonBase","lineHeight","spotlight","floaterProps","locale","back","last","getTourProps","sharedTourProps","getMergedStep","mergedStep","isMergeableObject","mergedStyles","stepStyles","overlay","defaultStyles","beacon","beaconInner","animation","beaconOuter","boxSizing","transformOrigin","tooltip","tooltipContainer","tooltipTitle","tooltipContent","tooltipFooter","alignItems","justifyContent","tooltipFooterSpacer","flex","buttonNext","buttonBack","buttonClose","buttonSkip","mixBlendMode","overlayLegacy","overlayLegacyCenter","spotlightLegacy","boxShadow","floaterStyles","disableScrollParentFix","spotlightPadding","placementBeacon","validateStep","validateSteps","Scope","_element","canHaveFocus","getAttribute","isVisible","querySelectorAll","canBeTabbed","_this$options$keyCode","keyCode","interceptTab","elements","findValidTabElements","preventDefault","shiftKey","activeElement","focus","noSize","innerHTML","getPropertyValue","isHidden","handleKeyDown","checkFocus","selector","JoyrideBeacon","beaconComponent","head","getElementsByTagName","nonce","createTextNode","shouldFocus","getElementById","onClickOrHover","setBeaconRef","BeaconComponent","JoyrideSpotlight","_excluded$2","JoyrideOverlay","mouseOverSpotlight","isScrolling","showSpotlight","_this$spotlightStyles","spotlightStyles","offsetY","clientY","pageY","offsetX","clientX","pageX","inSpotlight","updateState","scrollTimeout","resizeTimeout","forceUpdate","disableScrolling","handleResize","spotlightClicks","handleScroll","handleMouseMove","elementRect","isFixedTarget","hasScrollParent","parentTop","getElementPosition","_this$props4","disableOverlay","disableOverlayClose","onClickOverlay","baseStyles","stylesOverlay","safarOverlay","_excluded2","JoyrideTooltipCloseBtn","JoyrideTooltipContainer","backProps","closeProps","isLastStep","primaryProps","skipProps","tooltipProps","hideBackButton","hideCloseButton","hideFooter","showProgress","showSkipButton","_step$locale","JoyrideTooltip","helpers","setTooltipRef","primaryText","handleClickBack","handleClickClose","handleClickPrimary","handleClickSkip","tooltipComponent","cleanStep","renderProps","getElementsProps","TooltipComponent","JoyridePortal","renderReact15","JoyrideStep","removeScope","setPopper","beaconPopper","tooltipPopper","skipBeacon","hasStoreChanged","hasStarted","elementExists","hasRenderedTarget","_getComputedStyle","isElementVisible","shouldScroll","handleClickOverlay","isPositioned","handleClickHoverBeacon","Joyride","getHelpers","run","addListener","syncState","intKey","Event","which","disableCloseOnEsc","scrollToFirstStep","initStore","handleKeyboard","prevSteps","prevStepIndex","_this$store","stop","changedProps","_treeChanges2","stepsChanged","stepIndexChanged","nextAction","callbackData","prevStep","_prevStep","scrollToStep","scrollOffset","scrollDuration","hasCustomScroll","scrollY","_this$beaconPopper","_this$tooltipPopper","_placement","_popper","reject","limit","scroll","duration","scrollTo","Tooltip","dismissable","onDismiss","isDismissRequested","onDismissConfirm","onCancelDismiss","IconClose","Button","onFinish","startWithDelay","setStepIndex","dismissRequested","setDismissRequested","useTimeout","localSteps","requestDismiss","basicTourStep","organizationBasicTourStep","typographyVariant","icon","fullWidth","iconRight","IconRight","critical","ariaHidden","buttonRef","selected","textSize","textWeight","iconSize","textVariant","hasOnlyIcon","iconFill","button","onlyIcon","text","context","useFormikContext","isSubmitting","multicube","signup","getGraphicByStatus","getDefaultDescriptionByStatus","isLoading","customErrorElement","skeleton","noDataPlaceholder","useHistory","childrenAnimateStyle","_error$response","_error$response2","_error$response2$data","_error$data","response","code","AuthPromptPlaceholder","overviewLinks","shouldRender","motion","div","animate","customActionComponent","styleTop","styleAnimate","exit","main","buttons","btnProp","ConditionalWrapper","link","ModalCropImage","lazyLoadComponent","ModalSelectRegion","ModalText","ModalAddNotebook","ModalAddFile","ModalAddCodeAssets","ModalConfirm","ModalAddLicense","ModalServerMismatch","ModalCreditCard","ModalClaimCredits","ModalAPIToken","ModalInvoice","ModalRenameOrganization","ModalRegisterArray","ModalSelectFile","ModalRenameArray","ModalUploadFile","ModalShareArray","ModalInviteMemberToOrganization","ModalChangeCloudCredentials","ModalChangeGroupCloudCredentials","ModalPublicShareArray","ModalMarkArrayAsReadOnly","ModalRequestCredits","ModalAddAssetsToGroup","ModalAddDataAssets","ModalCreateGroup","ModalRegisterGroup","ModalRenameGroup","ModalRemoveGroup","ModalShareGroup","ModalPublicShareGroup","ModalSelectGroup","ModalCopyNotebook","ModalCopyUDF","ModalUploadNotebook","ModalCreateNotebook","ModalAddGroup","ModalIngestVCF","ModalIngestSOMA","ModalAddAsset","ModalChangeUsername","ModalAWSCredentials","ModalSelectCloudCredentialsProvider","ModalSelectAWSCredentialsFormat","ModalSelectAzureCredentialsFormat","ModalSelectGCPCredentialsFormat","ModalGCPKeyIDCredentials","ModalGCPServiceAccountCredentials","ModalARNAWSCredentials","ModalARNAWSCredentialsSetup","ModalARNAWSCredentialsRoleInfo","ModalLaunchServer","ModalImportVerticalAsset","ModalAzureCredentials","ModalAzureTokenCredentials","ModalApplyRootPathToStoragePaths","ModalAddSSOConnection","ModalSSODomainSetup","ModalSelectRegionAndServerProfile","ModalWelcome","ModalProfileSetup","ModalConnectStorageIntro","ModalConnectStorage","ModalAddAssetIntro","ModalSkipOnboarding","availableModals","ModalUserOnboarding","ModalCreateOrganization","ModalWelcomeToOrganization","ModalRemoveAsset","ModalIngestBiomedicalImaging","ModalIngestFile","ModalLaunchApp","ModalSelectAssetToLaunch","ModalIngestPointCloud","ModalBulkRemoveAssets","ModalBulkChangeAssetCredentials","ModalUpdateAssetMetadata","ModalInfo","modals","useModal","flushModals","popModal","scrollbarWidth","classList","add","remove","handler","lastModal","noDismissOnEscape","Suspense","fallback","modalParams","params","createPath","replacePathParams","useGetArray","queryData","config","queryConfig","isInitialLoading","refetch","useQuery","useQueryRequest","queryKey","useListAssetSummaries","group_name","groupName","group_namespace","groupNamespace","useGetGroup","getNotebookStatusKey","ns","useGetNotebookStatus","useAddCompletedOnboardingItems","mutateAsync","useMutation","useMutateRequest","organization","useGetOrganization","useGetTaskDetails","useGetTaskGraphDetails","useIsUserInJupyterPage","pathname","useLocation","queryParams","queryString","userIsInJupyterNotebookOrDashaboard","appsLinks","server","dashboardParamIsPresent","userIsInDashboard","userIsInJupyterNotebook","iframe","selectServerAndImageProfilesAndSubmit","useCallback","fileProperties","opts","_iframe$current","_iframe$current$conte","IframeActions","TILEDB_AUTOLOAD_IMAGE","payload","profile","image","preventSubmission","contentWindow","postMessage","preSelectServerAndImageProfiles","_iframe$current2","_iframe$current2$cont","sendMessageThatUserHasNoCredits","_iframe$current3","_iframe$current3$cont","TILEDB_NO_CREDITS","sendMessageToRequestToHideSubmitButton","_iframe$current4","_iframe$current4$cont","TILEDB_RENDER_NO_SUBMIT_BUTTON","sendMessageWithCurrentTheme","theme","_iframe$current5","_iframe$current5$cont","sendMessageToRequestUserSelection","_iframe$current6","_iframe$current6$cont","TILEDB_REQUEST_SELECTIONS","sendMessageCredentialsUpdated","_iframe$current7","_iframe$current7$cont","TILEDB_UPDATED_CREDENTIALS","sendMessageToRequestToOpenNotebook","_iframe$current8","_iframe$current8$cont","notebookName","ownership","eventName","savedHandler","eventListener","_savedHandler$current","handlers","onJupyterlabLaunching","onJupyterNotRunning","onJupyterSpawnPageReady","onJupyterProgress","onJupyterError","onJupyterhubOrJupyterlabLoaded","onJupyterlabLoaded","onJupyterhubUserRequestedCredits","onJupyterhubServerAndImageProfilesReceived","onJupyterLabExtensionOpenFileLoaded","onJupyterLabShowLoaderRequest","onVoilaLaunch","onJupyterLabHideLoaderRequest","onJupyterAddCredentialsRequest","onJupyterlabCreateNotebookRequest","onJupyterhubUpdateFilePropertiesRequest","onJupyterlabShareNotebookRequest","onJupyterhubUserImageAndServerProfileSelection","useEventListener","TILEDB_JUPYTERLAB_LAUNCHING","TILEDB_JUPYTER_NOT_RUNNING","TILEDB_AVAILABLE_PROFILES","TILEDB_SPAWN_READY","TILEDB_NOTEBOOK_PROGRESS","progressText","progress","progressNumber","TILEDB_ERROR_500","TILEDB_JUPYTERHUB_OR_JUPYTERLAB_LOADED","TILEDB_JUPYTERHUB_USER_SELECTIONS","TILEDB_JUPYTERLAB_LOADED","TILEDB_REQUEST_CREDITS","TILEDB_OPEN_FILE_EXTENSION_LOADED","TILEDB_ADD_CREDENTIALS","TILEDB_CREATE_NOTEBOOK","isString","TILEDB_NOTEBOOK_SHARING_PREFIX","notebookCloudPath","TILEDB_SHOW_LOADER_START","_event$data","_event$data$payload","TILEDB_SHOW_LOADER_STOP","_event$data2","_event$data2$payload","TILEDB_VOILA_LAUNCHED","TILEDB_UPDATE_FILE_PROPERTIES","reRenderIframe","useJupyter","useOnJupyterIncomingMessage","JupyterStatus","ShuttingDown","useInterval","NotRunning","ServiceUnavailable","ErrorEncountered","timestamp","isNumber","dateObject","setUTCSeconds","ms","ts","utcDate","toUTCString","tsDiff","getTime","millisecondsToSeconds","epochToDate","fragmentTimestampToDateTime","timezone","fragmentTimestampToDate","formatTimezonedDate","user","Intl","DateTimeFormat","resolvedOptions","timeZone","relativeTimeInWordsToNow","dateTime","formatDate","dateFormat","didMountRef","setData","sub","eventBus","unsubscribe","auto","htmlElRef","_htmlElRef$current","_htmlElRef$current2","select","delay","immediate","savedCallback","_savedCallback$curren","_savedCallback$curren2","storedValue","setStoredValue","localStorage","getItem","setItem","arg","eventTypes","DEFAULT_IGNORE_CLASS","hasIgnoreClass","noSnackbarErrors","apiFunc","showSnackbar","useSnackbar","_config$helpers","setSubmitting","onMutateSubmit","catch","onCatch","res","_config$helpers2","_config$helpers3","dataMapper","mapDataToFormValues","identity","transformedData","resetForm","values","_config$helpers4","onSubmit","_config$helpers5","_config$helpers6","ex","_config$helpers7","_response$data","_response$data2","noSnackbar","logout","logoutHandler","sessionStorage","sessionStorageKeys","INVALID_TOKEN","statusText","capitalizeFirstLetter","getScrollPosition","refElement","setPosition","currentPosition","useLayoutEffect","removeValue","removeItem","changeTheme","themeTabSelected","useContext","ThemeContext","timeout","HeaderContent","setHeaderContent","header","useHistoryStore","historyItems","item","concatenatedItems","pop","flush","peek","items","isEmpty","goBack","removeNItems","useGetNavigationItemsSinceRoot","rootIndex","findLastIndex","isRoot","lastItem","lastItemKey","historyNavigation","itemWithSameKey","peekNItemInNavigationSelector","navigationItems","TaskType","ChannelActions","tabChannel","BroadcastChannel","useStore","createWithEqualityFn","notebook","lastSession","queuedTasks","jupyterURL","JUPYTERHUB_URL","notebookStatuses","notebookStatusLoading","activeServerImage","selectedRegion","notebookStatusError","dashboards","Unknown","dashboardsLoaded","setDashboardAsLoaded","dashboardName","popNotebook","pushQueuedTask","task","clearQueuedTasks","getCurrentNotebookStatus","statuses","region","setNotebookStatuses","setNotebookStatusError","err","setNotebookStatusLoading","setActiveServerImage","addDashboard","arrayId","removeDashboard","_dashboards$id","arrayName","dashboardsWithoutId","dissoc","resetState","activeRegions","setNotebook","setLaunchingProgress","Launching","setStatus","setIdle","Idle","shutDownJupyterNotebook","activeRegionsSelector","RESET_STATE","setSelectedRegion","getJupyterURL","getDashboardURL","dashboard","getNotebookURL","launchServerForJupyterNotebook","jupyterNotebook","file_properties","launchNotebookServer","shallow","resetJupyterStoreFromNonReactHook","pod_status","notebookStatusSelector","userHasNoCreditsSelector","isAxiosError","onmessage","ev","regionShuttingDown","newRegion","jupyter","Modals","pushModal","modal","activeModals","modalWithName","goToModal","modalName","modalIndex","showServerMismatchModal","showUserOnboardingModal","showConfirmModal","showClaimCreditsModal","showImportVerticalModal","showAddDataAssetsModal","showIngestVCFModal","showIngestSOMAModal","showAddCodeAssetsModal","showSelectRegionAndServerProfileModal","showAddFileModal","showArrayRenameModal","showChangeCloudCredentialsModal","showChangeGroupCloudCredentialsModal","showSelectRegionModal","showCropImageModal","showCreditCardModal","showShareArrayModal","showLicenseModal","showTextModal","showRegisterArrayModal","showAddNotebookModal","showAPITokenModal","showInvoiceModal","showOrganizationRenameModal","showInviteMemberToOrganizationModal","showPublicShareArrayModal","showMarkArrayAsReadOnlyModal","showRequestCreditsModal","showAddAssetsToGroupModal","showCreateGroupModal","showRegisterGroupModal","showRenameGroupModal","showShareGroupModal","showPublicShareGroupModal","showSelectGroupModal","showSelectFileModal","showUploadFileModal","showCopyNotebookModal","showUploadNotebookModal","showCreateNotebookModal","showCopyUDFModal","showAddGroupModal","showRemoveGroupModal","showAddAssetModal","showChangeUsernameModal","showSelectCloudCredentialsProviderModal","showAWSCredentialsModal","showSelectAWSCredentialsFormatModal","showSelectGCPCredentialsFormatModal","showSelectGCPServiceAccountModal","showGCPKeyIDCredentialsModal","showSelectAzureCredentialsFormatModal","showARNAWSCredentialsSetupModal","showARNAWSCredentialsModal","showARNAWSCredentialsRoleInfoModal","showAzureCredentialsModal","showAzureTokenCredentialsModal","showApplyRootPathToStoragePathsModal","showLaunchServerModal","showAddSSOConnectionModal","showSSoDomainSetupModal","showWelcomeModal","showProfileSetupModal","showFinishUserOnboardingModal","ModalFinishUserOnboarding","showConnectStorageIntroModal","showConnectStorageModal","showAddAssetIntroModal","showSkipOnboardingModal","showCreateOrganizationModal","showWelcomeToOrganizationModal","showFinishOrganizationOnboardingModal","ModalFinishOrganizationOnboarding","showRemoveAssetModal","showIngestBiomedicalImagingModal","showIngestFileModal","showLaunchAppModal","showSelectAssetToLaunchModal","showIngestPointCloudModal","showBulkRemoveAssetsModal","showBulkChangeAssetCredentialsModal","showUpdateAssetMetadataModal","showInfoModal","useGetOnboardingItems","useEventCallback","subscription","_subscription$current","OnboardingFlow","welcomeOnboardingItems","Intro","profileSetupOnboardingItems","ThemeSelection","ProfileInfo","RootPath","CloudStorage","isEnterpriseEnv","ClaimCredits","basicTourOnboardingItems","BasicTour","launchNotebookOnboardingItems","LaunchNotebook","indicateOnboardingFinishItems","IndicateFinishUserOnboarding","organizationBasicTourOnboardingItems","OrganizationBasicTour","indicateOrganizationOnboardingFinishItems","IndicateFinishOrgOnboarding","onboardingFlows","intro","profileSetup","ProfileSetup","basicTour","launchNotebook","indicateOnboardingFinish","IndicateOnboardingFinish","IndicateOrganizationOnboardingFinish","useGetOnboardingState","OnboardingContext","createContext","OnboardingProvider","__unsafeOnboarding","__unsafeOnboardingState","workspace","isOrganizationWorkspace","isUserWorkspace","useWorkspaceContext","addOnboardingItems","refetchOnboardingState","onboardingStateResponse","namespaceType","refetchCompletedOnboardingItems","onboardingResponse","useGetCompletedOnboardingItems","completedOnboardingItems","_onboardingResponse$d","onboardingState","EventTypes","LAUNCHED_NOTEBOOK","ADDED_ASSET","isFlowComplete","flow","getOnboardingItemsByFlow","isIntroComplete","isBasicTourComplete","isProfileSetupComplete","isCloudStorageComplete","isLaunchNotebookComplete","isAddAssetComplete","isIndicateOnboardingFinishComplete","isUserOnboardingSkipped","isOrganizationBasicTourComplete","isIndicateOrganizationOnboardingFinishComplete","isInviteMemberComplete","isOrganizationOnboardingSkipped","cloud_storage_settings","registered_asset","SkipUserOnboarding","organization_members","SkipOrganizationOnboarding","onboardingProgress","flowsToCheck","completedItemsCount","isComplete","providedValue","onboardingLoading","Provider","useOnboardingContext","permission","hasEditOrganizationPermissions","hasPermissions","EditOrganization","OrganizationContext","OrganizationProvider","__unsafeMockOrganization","getOrganization","Organization","isAdmin","Admin","isOwner","Owner","hasEnabledFeature","feature","_organization$enabled","enabled_features","canEditOrganization","allowed_actions","useOrganizationContext","snackbars","dismissSnackbar","snackbarId","snackbar","newSnackbar","existingSnackbar","sn","uniqueId","generateUniqueId","dismissMode","timesCalled","restSnackBars","Theme","ThemeProvider","_window","_window$matchMedia","_window$matchMedia$ca","defaultTheme","defaultSystemTheme","matchMedia","matches","Dark","Light","setTheme","useLocalStorage","systemTheme","setSystemTheme","_window2","_window2$matchMedia","onchange","newTheme","useGetUser","__","isFetching","checkLoginKey","useCheckLoginCookie","useQueryDataListener","queryClient","getQueryCache","subscribe","_event$query","fetchStatus","_event$query$state$da","UserContext","UserProvider","_checkLoginCookieResp","defaultUser","setUser","JupyterStore","checkLogin","checkLoginCookieResponse","checkLoginCookieError","checkLoginCookieLoading","shouldFetchUser","userRef","manuallyFetchUser","userResponse","userError","userInfoLoading","default_region","userData","_userError$response","providerValue","isInPaidTier","product_tier","Paid","_user$enabled_feature","LOGOUT","clear","useUserPreferencesStore","persist","pageSize","setPageSize","notificationsSnoozed","setNotificationsSnoozed","WorkspaceContext","WorkspaceProvider","_assetSummariesRespon","__dangerousDefaultWorkspace","__dangerousDefaultSummaries","workspaceSelected","useWorkspaceStore","clearWorkspaceSelectedStore","setWorkspaceSelected","orgResponse","orgError","setWorkspace","assetSummariesResponse","assetSummariesError","assetSummaries","useDidUpdateEffect","captureException","resetWorkspace","User","username","enabledFeatures","defaultS3Path","default_s3_path","defaultS3PathCredentialsName","default_s3_path_credentials_name","allowedActions","assetLocations","asset_locations","org","assumeRoleArn","assume_role_arn","getStorageLocationByKey","_workspace$assetLocat","getDefaultStorageLocation","_workspace$assetLocat2","rootStorageLocation","credentials_name","hasEditPermissions","hasAssetsOfType","_assetSummaries$owned","_assetSummaries$share","owned","shared","_workspace$enabledFea","ws","unstable_batchedUpdates","GlobalVariable","regions","parse","SUPPORTED_REGIONS","CustomError","_type","UnauthorizedError","variableName","isDateTime","DateTime","isDate","getDateTimeInstanceFromDate","fromISO","fromJSDate","fromMillis","now","plus","toJSDate","endOf","startOf","dateToEpochSeconds","toSeconds","toFormat","curry","fallbackTimezone","tz","setZone","formatDistance","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistanceToString","token","MINUTES_IN_MONTH","formatDetailedDistance","dirtyDate","dirtyBaseDate","diff","minutes","hours","seconds","milliseconds","years","months","days","abs","units","year","month","day","hour","minute","second","millisecond","val","monthsSinceStartOfYear","curriedFormatDistance","func","waitFor","callNow","eventListeners","eventsFound","events","f","emit","firstItem","curValue","curIndex","curObj","performance","random","substring","supportedRegions","rootPaths","arrayRouterPaths","details","notebookRouterPaths","fileRouterPaths","somaRouterPaths","biomedicalImagingRouterPaths","udfRouterPaths","groupRouterPaths","vcfRouterPaths","vectorSearchRouterPaths","mlModelRouterPaths","geometryRouterPaths","pointCloudRouterPaths","rasterRouterPaths","dashboardRouterPaths","arePathnamesInSameLevel","pathname1","pathname2","rootpath","matchPath","exact","matchesSecondPathname","equals","customHistory","createBrowserHistory","basename","prependBasePath","prevHistoryPush","lastPath","lastLocation","updateRedirectToAfterLogin","oauth2Links","REDIRECT_TO_AFTER_LOGIN","listen","locationKey","pushPathnameToToHistoryStack","_useHistoryStore$getS","secondToLastItem","lastItemInStack","toggleMainSidebar","pushWithSameKeyAsNItem","_res$state$data","createGetArrayInfoQueryKey","createGetGroupQueryKey","createGetTaskGraphLogQueryKey","createGetTaskQueryKey","interval","Infinity","startTime","URL","searchParams","asset","wrapValueInPromise","getOverviewTitle","getTasksTitle","getAssetsTitle","defaultTile","assetTitle","getAssetTitleForBrowsers","getArrayAssetTitle","arrayInfo","polling","getArrayInfoFromCache","getGroupAssetTitle","groupId","groupInfo","getGroupInfoFromCache","rules","overviewRouterPaths","assetsRouterPaths","arrays","files","biomedicalImaging","geometry","groups","mlModels","notebooks","pointCloud","raster","soma","taskGraphs","udfs","vcf","vector","monitorRouterPaths","taskGraphLogs","getTaskgraphLogsTitle","logs","tasks","getComputeTitle","marketplaceRouterPaths","getMarketplaceTitle","settingsRouterPaths","getSettingsTitle","taskgraphLogsRouterPaths","taskGraphId","taskgraphLog","getTaskGraphLogFromCache","tasksRouterPaths","taskDetails","taskId","getArrayTaskFromCache","academyRouterPaths","getAcademyTitle","activityRouterPaths","activityDetails","activityId","appsRouterPaths","getAppsTitle","getTitleBasedOnPathname","_options$exact","pathWithoutSearchParams","stripSearchParamsFromPathName","shouldCheckExactResult","rulesArray","rootPathnames","hasTitle","getTitle","pathName","getTitlePromise","isPathnameRoot","historyItem","HistoryItem","process","storage","webStorageType","importOrReload","componentImport","hasRefreshed","canWriteToSessionStorage","isStorageSupported","LAZY_LOAD_REFRESHED","logoutFromRegion","jupyterHostURL","logoutURL","logoutJupyterHandler","configExists","ReadOnly","ReadWrite","ReadWriteDelete","maxDecimals","toLocaleString","maximumFractionDigits","divide","roundToNDecimals","num","EPSILON","pow","defaultToZero","defaultTo","divideBy1000","divideBy","roundToTwoDecimals","compose","calculateNotebookCost","uptime","millicpu","basePath","BASE_PATH","Query","Removable","abortSignalConsumed","setOptions","observers","cache","logger","defaultLogger","queryHash","initialState","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","getDefaultState","scheduleGc","meta","updateCacheTime","cacheTime","optionalRemove","newData","replaceData","dispatch","updatedAt","manual","setStateOptions","cancel","_this$retryer","retryer","silent","isActive","observer","isDisabled","getObserversCount","isStale","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","_this$retryer2","shouldFetchOnWindowFocus","cancelRefetch","continue","onOnline","_this$retryer3","shouldFetchOnReconnect","addObserver","clearGcTimeout","notify","removeObserver","revert","cancelRetry","invalidate","fetch","fetchOptions","_this$options$behavio","_context$fetchOptions","_this$retryer4","continueRetry","queryFn","abortController","getAbortController","queryFnContext","pageParam","addSignalProperty","signal","fetchFn","_context$fetchOptions2","onFetch","revertState","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","isCancelledError","onSettled","isFetchingOptimistic","createRetryer","abort","onSuccess","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","_action$meta","_action$dataUpdatedAt","canFetch","reducer","notifyManager","batch","onQueryUpdate","QueryCache","Subscribable","queries","queriesMap","build","client","_options$queryHash","hashQueryKeyByOptions","getLogger","defaultQueryOptions","getQueryDefaults","queryInMap","getAll","arg1","arg2","filters","parseFilterArgs","matchQuery","findAll","listeners","MutationCache","mutations","mutationId","mutation","Mutation","mutationCache","defaultMutationOptions","mutationKey","getMutationDefaults","matchMutation","resumePausedMutations","_this$resuming","resuming","pausedMutations","isPaused","queryCache","queryDefaults","mutationDefaults","mountCount","mount","unsubscribeFocus","focusManager","isFocused","unsubscribeOnline","onlineManager","isOnline","unmount","_this$unsubscribeFocu","_this$unsubscribeOnli","isMutating","fetching","getQueryData","_this$queryCache$find","ensureQueryData","arg3","parsedOptions","parseQueryArgs","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","setQueryData","updater","prevData","functionalUpdate","defaultedOptions","setQueriesData","_ref3","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","cancelOptions","promises","all","invalidateQueries","_filters$refetchType","refetchType","_options$cancelRefetc","refetchPage","throwOnError","prefetchQuery","fetchInfiniteQuery","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","hashQueryKey","firstMatchingDefaults","partialMatchKey","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","suspense","refetchOnWindowFocus","names","newPath","toPairs","pluralize","nonPlural","plural","TOGGLE_MAIN_SIDEBAR","whatIsTiledb","getStarted","structureImportance","arraysIntro","cloudCredentials","tablesIntro","bioimagingIntro","ml","vectorSearch","populationGenomics","singleCell","catalog","catalogSearch","monitor","control","share","comply","preview","visualize","scale","qString","overview","sharing","activity","_ref4","metadata","_ref5","schema","_ref6","settings","_ref7","my","forgotPassword","resetPassword","confirmEmail","emailNotConfirmed","ssoProvider","provider","companySSO","contents","_ref8","download","tiledbWebsite","tiledbAbout","tiledbPricing","tiledbContactSales","tiledbPrivacyPolicy","tiledbTerms","tiledbContact","tiledbFeedback","enterprise","metrics","tiledbCloudDocs","home","storagePathSettings","credentials","docs","install","blogposts","arrays101","taskgraphs","vectorDB","geometries","genomicsDataProblem","universalModel","billing","members","storagePaths","tokens","ssoConnections","ssoConnection","uuid","consent","taskGraphLogDetails","accept","invitationId","ROOT","stringifyUrl","asset_type","servers","stripe","ResizeObserverBoxOptions","resizeObservers","freeze","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","toJSON","fromRect","rectangle","isSVG","SVGElement","getBBox","getClientRects","isElement","WeakMap","scrollRegexp","verticalRegexp","IE","parseDimension","pixel","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","cs","svg","ownerSVGElement","removePadding","writingMode","canScrollVertically","canScrollHorizontally","paddingLeft","borderRight","borderRightWidth","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","verticalScrollbarThickness","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","depth","broadcastActiveObservations","shallowestDepth","callbacks","ro","activeTargets","ot","entry","targetDepth","lastReportedSize","splice","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","ErrorEvent","createEvent","initEvent","dispatchEvent","deliverResizeLoopError","queueMicroTask","toggle_1","el_1","MutationObserver","observe","characterData","textContent","watching","observerConfig","childList","subtree","time","scheduler","Scheduler","stopped","schedule","until","elementsHaveResized","disconnect","updateCount","ResizeObservation","CONTENT_BOX","tagName","isReplacedElement","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","detail","firstObservation","box","unobserve","lastObservation","ResizeObserver","DEFAULT_IGNORE_ERRORS","InboundFilters","__initStatic","__init","_options","setupOnce","addGlobalEventProcessor","getCurrentHub","eventProcess","hub","getIntegration","getClient","clientOptions","getOptions","internalOptions","allowUrls","denyUrls","ignoreErrors","ignoreInternal","_mergeOptions","exception","_isSentryError","__SENTRY_DEBUG__","getEventDescription","oO","_getPossibleEventMessages","stringMatchesSomePattern","_isIgnoredError","_getEventFilterUrl","_isDeniedUrl","_isAllowedUrl","_shouldDropEvent","frames","stacktrace","frame","filename","_getLastValidUrl","originalFunctionToString","FunctionToString","Function","getOriginalFunction","installedIntegrations","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integrations","integration","isDefaultInstance","arrayify","finalIntegrations","integrationsByName","currentInstance","existingInstance","filterDuplicates","debugIndex","debugInstance","setupIntegration","integrationIndex","SentryError","logLevel","DSN_REGEX","dsnToString","dsn","withPassword","pass","port","projectId","protocol","publicKey","dsnFromComponents","components","makeDsn","from","projectMatch","dsnFromString","isValidProtocol","validateDsn","SENTRY_API_VERSION","getBaseApiEndpoint","getEnvelopeEndpointWithUrlEncodedAuth","tunnelOrOptions","tunnel","sdkInfo","_metadata","sdk","_getIngestEndpoint","urlEncode","sentry_key","sentry_version","sentry_client","_encodedAuth","STACKTRACE_LIMIT","createStackParser","parsers","sortedParsers","stack","skipFirst","line","cleanedLine","parser","localStack","firstFrameFunction","lastFrameFunction","stripSentryFramesAndReverse","defaultFunctionName","getFunctionName","WINDOW","getGlobalObject","supportsFetch","Headers","Request","Response","isNativeFetch","instrumented","instrument","CONSOLE_LEVELS","level","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","proto","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","instrumentDOM","xhrproto","XMLHttpRequest","originalOpen","_len3","_key3","xhr","xhrInfo","__sentry_xhr__","__sentry_own_request__","onreadystatechangeHandler","readyState","status_code","endTimestamp","startTimestamp","onreadystatechange","original","_len4","readyStateArgs","_key4","originalSend","_len5","_key5","instrumentXHR","doc","sandbox","hidden","supportsNativeFetch","originalFetch","_len2","_key2","handlerData","fetchData","getFetchMethod","getFetchUrl","instrumentFetch","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","supportsHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","_len7","_key7","lastHref","_len6","_key6","_oO","instrumentHistory","_oldOnErrorHandler","onerror","column","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","fetchArgs","isInstanceOf","debounceDuration","debounceTimerID","lastCapturedEvent","globalListener","isContentEditable","shouldSkipDOMEvent","shouldShortcircuitPreviousDebounce","normalize","maxProperties","visit","normalizeToSize","maxSize","normalized","encodeURI","utf8Length","memo","hasWeakSet","WeakSet","inner","delete","memoBuilder","memoize","unmemoize","stringified","_events","isSyntheticEvent","stringifyValue","valueWithToJSON","numAdded","visitable","convertToPlainObject","visitKey","visitValue","createEnvelope","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItem","envelopeItemType","encodeUTF8","textEncoder","TextEncoder","encode","serializeEnvelope","envHeaders","parts","itemHeaders","Uint8Array","stringifiedPayload","buffers","totalLength","buf","merged","concatBuffers","createAttachmentEnvelopeItem","attachment","dropUndefinedKeys","content_type","contentType","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","session","sessions","transaction","client_report","user_report","replay_event","replay_recording","envelopeItemTypeToDataCategory","getSdkMetadataForEnvelopeHeader","metadataOrEvent","createEventEnvelope","eventType","packages","enhanceEventWithSdkInfo","envelopeHeaders","dynamicSamplingContext","sdkProcessingMetadata","event_id","sent_at","trace","createEventEnvelopeHeaders","prepareEvent","hint","normalizeDepth","normalizeMaxBreadth","prepared","uuid4","dateTimestampInSeconds","environment","release","dist","maxValueLength","truncate","applyClientOptions","integrationNames","applyIntegrationsMetadata","finalScope","captureContext","clone","resolvedSyncPromise","getAttachments","attachments","applyToEvent","evt","maxBreadth","breadcrumbs","contexts","extra","spans","span","normalizeEvent","ALREADY_SEEN_ERROR","BaseClient","_integrations","__init2","_integrationsInitialized","__init3","_numProcessing","__init4","_outcomes","_dsn","_transport","transport","recordDroppedEvent","transportOptions","checkOrSetAlreadyCaught","_process","eventFromException","_captureEvent","captureMessage","promisedEvent","isPrimitive","eventFromMessage","captureEvent","originalException","captureSession","_isEnabled","sendSession","updateSession","init","getDsn","getSdkMetadata","getTransport","_isClientDoneProcessing","clientFinished","transportFlushed","setupIntegrations","getIntegrationById","integrationId","addIntegration","sendEvent","env","_sendEnvelope","createSessionEnvelope","reason","category","_event","sendClientReports","_updateSessionFromEvent","crashed","errored","exceptions","mechanism","handled","sessionNonTerminal","errors","SyncPromise","ticked","_prepareEvent","_processEvent","finalEvent","sentryError","sampleRate","rejectedSyncPromise","isTransaction","isTransactionEvent","isError","isErrorEvent","beforeSendLabel","__sentry__","beforeSend","beforeSendTransaction","processBeforeSend","beforeSendResult","invalidValueError","isThenable","isPlainObject","_validateBeforeSendResult","processedEvent","getSession","transactionInfo","transaction_info","changes","propagations","send","_clearOutcomes","outcomes","quantity","exceptionFromError","stackParser","parseStackFrames","extractMessage","eventFromError","popSize","framesToPop","reactMinifiedRegexp","getPopSize","eventFromUnknownInput","syntheticException","attachStacktrace","isUnhandledRejection","isDOMError","isDOMException","domException","eventFromString","addExceptionTypeValue","tags","isEvent","extractExceptionKeysForMessage","__serialized__","eventFromPlainObject","addExceptionMechanism","synthetic","GLOBAL_OBJ","ignoreOnError","shouldIgnoreOnError","wrap","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","withScope","addEventProcessor","markFunctionWrapped","addNonEnumerableProperty","validSeverityLevels","severityLevelFromString","parseUrl","fragment","relative","MAX_ALLOWED_STRING_LENGTH","BREADCRUMB_INTEGRATION_ID","Breadcrumbs","dom","sentry","_consoleBreadcrumb","_innerDomBreadcrumb","keyAttrs","serializeAttribute","maxStringLength","htmlTreeAsString","addBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","addSentryBreadcrumb","breadcrumb","safeJoin","parsedLoc","parsedFrom","parsedTo","BrowserClient","SDK_VERSION","visibilityState","_flushOutcomes","breadcrumbIntegration","platform","discarded_events","isRealNavigator","sendBeacon","UNKNOWN_FUNCTION","createFrame","lineno","colno","in_app","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","winjsRegex","defaultStackParser","subMatch","extractSafariExtensionDetails","isSafariExtension","isSafariWebExtension","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","originalCallback","wrapOptions","originalFunction","globalObject","handleEvent","wrappedEventHandler","originalEventHandler","GlobalHandlers","_installFunc","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","getHubAndOptions","ERROR_TYPES_RE","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","ev0","ev0s","ev0sf","getLocationHref","LinkedErrors","_limit","linkedErrors","_walkErrorTree","_handler","Dedupe","eventProcessor","currentEvent","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","fingerprint","previousFingerprint","HttpContext","referrer","Referer","makePromiseBuffer","$","taskProducer","drain","capturedSetTimeout","DEFAULT_RETRY_AFTER","updateRateLimits","limits","statusCode","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","headerDelay","headerDate","parseRetryAfterHeader","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","makeRequest","bufferSize","rateLimits","filteredEnvelopeItems","envelopeItemDataCategory","disabledUntil","isRateLimited","getEventForEnvelopeItem","filteredEnvelope","recordEnvelopeLoss","requestTask","cachedFetchImpl","makeFetchTransport","nativeFetch","fetchImpl","getNativeFetchImplementation","requestOptions","referrerPolicy","keepalive","XHR_READYSTATE_DONE","makeXHRTransport","getResponseHeader","setRequestHeader","Integrations","__SENTRY_RELEASE__","SENTRY_RELEASE","autoSessionTracking","clientClass","enable","getScope","initialScope","bindClient","initAndBind","startSessionOnHub","startSessionTracking","showReportDialog","getStackTop","getUser","lastEventId","script","dsnLike","dialogOptions","endpoint","encodedOptions","email","getReportDialogEndpoint","onload","injectionPoint","startSession","ignoreDuration","API_VERSION","DEFAULT_BREADCRUMBS","Hub","_stack","_version","isOlderThan","pushScope","getStack","popScope","_lastEventId","_withClient","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","consoleSandbox","setTags","extras","setTag","setExtra","setContext","configureScope","oldHub","makeMain","startTransaction","customSamplingContext","_callExtensionMethod","traceHeaders","endSession","_sendSessionUpdate","layer","closeSession","setSession","makeSession","currentSession","shouldSendDefaultPii","sendDefaultPii","getMainCarrier","__SENTRY__","extensions","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","isNodeEnv","activeDomain","domain","registryHubTopStack","_Oo","getHubFromActiveDomain","carrier","getGlobalSingleton","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","setLevel","setTransactionName","setSpan","getSpan","getTransaction","updatedScope","maxCrumbs","getLastBreadcrumb","clearBreadcrumbs","addAttachment","clearAttachments","getTraceContext","transactionName","_applyFingerprint","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","processors","processor","final","startingTime","timestampInSeconds","sid","started","did","attrs","ip_address","ipAddress","user_agent","sessionToJSON","DEFAULT_MAX_STRING_LENGTH","elem","currentElem","MAX_TRAVERSE_HEIGHT","out","separator","sepLength","nextStr","_htmlElementAsString","attr","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","objectToString","wat","isBuiltin","isRegExp","base","originalConsole","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","disable","gbl","crypto","msCrypto","randomUUID","getRandomByte","getRandomValues","getFirstException","firstException","newMechanism","currentMechanism","mergedData","__sentry_captured__","maybeArray","__SENTRY_BROWSER_BUNDLE__","dynamicRequire","mod","require","replacementFactory","wrapped","getOwnProperties","newObj","serializeEventTarget","currentTarget","CustomEvent","extractedProps","maxLength","includedKeys","serialized","_dropUndefinedKeys","memoizationMap","memoVal","returnValue","delimiter","testString","requireExactStringMatch","pattern","isMatchingPattern","States","_","_state","PENDING","_handlers","executor","__init5","__init6","_resolve","_reject","onfulfilled","onrejected","_executeHandlers","finally","onfinally","isRejected","_setResult","RESOLVED","REJECTED","_value","cachedHandlers","dateTimestampSource","nowSeconds","platformPerformance","module","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","_browserPerformanceTimeOriginMode","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","isGlobalObj","globalThis","creator","hasOwn","argType","exports","default","wait","later","debounced","singleMatcher","RegExp","multiMatcher","decodeComponents","decodeURIComponent","decode","encodedURI","replaceMap","customDecodeURIComponent","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","define","ret","isArr","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","defaultArrayMerge","arrayMerge","sourceIsArray","destination","mergeObject","copyObject","keysIn","getSymbols","arrayPush","getPrototype","stubArray","getSymbolsIn","baseGetAllKeys","dataView","isDeep","cloneArrayBuffer","byteOffset","reFlags","lastIndex","symbolProto","symbolValueOf","tag","Ctor","cloneDataView","cloneTypedArray","cloneRegExp","cloneSymbol","isObjectLike","getTag","nodeIsMap","nodeUtil","isMap","baseUnary","baseIsMap","nodeIsSet","isSet","baseIsSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isFlat","isFull","initCloneArray","copyArray","isFunc","isBuffer","cloneBuffer","initCloneObject","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","initCloneByTag","Stack","stacked","subValue","keysFunc","getAllKeysIn","getAllKeys","arrayEach","assignValue","arrayMap","toKey","isSymbol","stringToPath","CLONE_DEEP_FLAG","isEmptyArray","isInteger","isEmptyChildren","Children","isPromise","getIn","def","toPath","setIn","resVal","pathArray","currentPath","currentObj","nextPath","setNestedObjectValues","visited","_Object$keys","k","FormikContext","displayName","FormikProvider","Consumer","formik","invariant","formikReducer","touched","isValidating","submitCount","emptyErrors","emptyTouched","useFormik","validateOnChange","_ref$validateOnChange","validateOnBlur","_ref$validateOnBlur","validateOnMount","_ref$validateOnMount","isInitialValid","enableReinitialize","_ref$enableReinitiali","initialValues","initialErrors","initialTouched","initialStatus","isMounted","fieldRegistry","useReducer","_React$useReducer","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","validateAt","sync","validateData","prepareDataForValidation","abortEarly","validateYupSchema","yupError","_iterator","_isArray","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","fieldValidations","fieldErrorsList","curr","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","combinedErrors","dispatchFn","onReset","maybePromisedOnReset","imperativeMethods","validateField","maybePromise","registerField","unregisterField","setTouched","shouldValidate","setErrors","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","parsed","checked","outerHTML","multiple","currentValue","valueProp","currentArrayOfValues","isValueInArray","getValueForCheckbox","getSelectedValues","handleChange","eventOrPath","setFieldTouched","executeBlur","_e$target","handleBlur","eventOrString","setFormikState","stateOrCb","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","handleSubmit","stopPropagation","validateForm","handleReset","getFieldMeta","initialError","getFieldHelpers","setValue","setError","getFieldProps","nameOrOptions","isAnObject","valueState","dirty","isValid","Formik","formikbag","innerRef","useImperativeHandle","shouldClone","useIsomorphicLayoutEffect","useField","propsOrFieldName","fieldName","validateFn","Form","forwardRef","_action","_useFormikContext","insert","arrayLike","copy","copyArrayLike","maxIndex","FieldArrayInner","updateArrayField","alterTouched","alterErrors","updateErrors","updateTouched","fieldError","fieldTouched","cloneDeep","handlePush","swap","indexA","indexB","handleSwap","move","handleMove","handleInsert","handleReplace","unshift","handleUnshift","handleRemove","handlePop","componentDidUpdate","tmp","arrayHelpers","form","isAbsolute","spliceOne","list","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","substr","valueEqual","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","globalHistory","canUseHistory","ua","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","prevIndex","nextKeys","goForward","block","unblock","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextEntries","canGo","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","factory","svgNS","locationHref","initialDefaultFrame","_useWebWorker","subframeEnabled","idPrefix","expressionsPlugin","isSafari","cachedColors","bmRnd","bmPow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface","propertyNames","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","styleDiv","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","q","t","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","BaseEvent","triggerEvent","_cbs","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createNS","createElementNS","createTag","DynamicPropertyContainer","addDynamicProperty","dynamicProperties","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","mode","lineCapEnum","lineJoinEnum","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","rotate","angle","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","sz","setTransform","j","l","translate","tx","ty","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","p1","isIdentity","_identity","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","pt","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","pool","math","nodecrypto","rngname","startdenom","significance","mask","ARC4","keylen","me","S","flatten","typ","mixkey","seed","smear","stringseed","charCodeAt","tostring","fromCharCode","shortseed","entropy","randomBytes","plugins","autoseed","arc4","prng","int32","quick","double","is_math_call","BezierFactory","ob","nm","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","extendPrototype","sources","sourcePrototype","getDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","point","lastPoint","lengthData","bezierLengthPool","newElement","percents","lengths","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","segmentsLengthPool","closed","pathV","pathO","pathI","_length","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","lastTime","vendors","cancelAnimationFrame","currTime","timeToCall","bez","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","_workerSelf","setupWorker","Blob","blob","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","ks","it","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","pathData","paths","__converted","checkPathProperties","checkColors","iterateShapes","checkShapes","completeClosingShapes","cl","singleShape","moduleOb","__complete","dataFunctionManager","assetLoader","formatResponse","contentTypeHeader","responseType","responseText","load","fullPath","errorCallback","completeData","onComplete","createProcess","loadAnimation","processId","origin","loadData","completeAnimation","anim","getFontProperties","fontData","fStyle","fWeight","weight","FontManager","emptyChar","w","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","fontFamily","innerText","fontVariant","fontStyle","letterSpacing","familyArray","enabledFamilies","trimFontOptions","createHelper","tHelper","fontProps","fFamily","fClass","getContext","Font","fonts","typekitLoaded","isLoaded","_warned","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","char","fontPrototype","addChars","found","ch","addFonts","defs","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","sc","helper","getCharData","getFontByName","fName","measureText","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","slerp","createQuaternion","c3","s1","s2","s3","getValueAtCurrentTime","comp","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","or","sk","sa","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","frameRate","autoOriented","v1","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","pointPool","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","vertices","outPoints","inPoints","cnt","ShapePropertyFactory","interpolateShape","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","shapePool","releaseShapes","addShape","ShapeProperty","shapeCollectionPool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","ir","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","rd","processPath","clonedPath","currentV","currentI","currentO","closerV","distance","newPosPerc","amount","centerPoint","pathLength","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ceil","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","comparePoints","buildShapeString","pathNodes","_o","shapeString","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","ImagePreloader","proxyImage","canvas","ctx","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","_imageLoaded","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","featureSupport","maskType","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","an","animatorOffset","rot","atan","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","charData","fontManager","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","textProperty","easer","tot","smoothness","newCharsFlag","divisor","poolFactory","initialLength","_create","_release","pooling","cloned","shapeCollection","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","BaseRenderer","SVGRenderer","animationItem","svgElement","titleElement","titleId","descElement","descId","maskElement","layerElement","renderConfig","imagePreserveAspectRatio","contentVisibility","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","filterSize","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","dpr","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","expansor","feMorph","properties","currentMasks","layerId","maskRef","getShapeProp","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","lvl","hd","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","ip","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","AudioElement","FootageElement","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","audioController","fr","compSize","NullElement","SVGShapeElement","SVGTextLottieElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","insertBefore","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","endPos","perspectiveElem","createThreeDContainer","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","setup","cWidth","cHeight","webkitPerspective","perspective","floatingContainer","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","isTransparent","renderableComponents","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","opFill","lc","lj","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","_isPlaying","_canPlay","_currentTime","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGGaussianBlurEffect","feGaussianBlur","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feOffset","feFlood","feComposite","originalNodeAdded","sequence","processSequence","processSequences","getNewKey","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","createFilter","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","getElements","destroyElements","pr","volumeValue","FootageInterface","getFootageData","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","sigma","dimensions","sigmaX","sigmaY","edgeMode","initialize","groupPath","elemChildren","childNodes","pathMasker","dasharrayValue","getTotalLength","lineLength","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","ef","CVBaseElement","CVMaskElement","hasMasks","stroke","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","pe","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","newLength","currentSavedOp","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","moveTo","lineTo","bezierCurveTo","transformHelper","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","lastFill","lastStroke","lastStrokeW","checkBlendMode","tg","transformedElementStyle","matrixValue","addEffects","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","shapeStyle","shapeTransform","compW","compH","innerElemStyle","strokeWidth","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","Image","imageElem","perspectiveStyle","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","addPlayingCount","activate","nowTime","elapsedTime","advanceTime","first","setParams","setDirection","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","resize","goToAndStop","isFrame","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","onSetupError","onSegmentComplete","animType","rendererSettings","autoloadSegments","initialSegment","fileName","wrapperAttributes","getNamedItem","prerender","loadNextSegment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","goToAndPlay","playSegments","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getDuration","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","ExpressionManager","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","mul","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedRandom","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","skewAxis","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","propertyIndex","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","propertyGetShapeProp","trims","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","ShapePathInterface","view","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","_name","mn","parentPropertyGroup","propertyName","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","numProperties","transformInterface","transformInterfaceFactory","cix","contentsInterfaceFactory","np","ExpressionPropertyInterface","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_prevValue","_sourceText","_thisLayerFunction","sourceText","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","MaskManagerInterface","effects","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","compositions","_thisProjectFunction","createGroupInterface","groupInterface","createValueInterface","en","expressionProperty","effectsData","MaskInterface","_mask","_data","_masksInterfaces","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","speedAtTime","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TextExpressionSelectorPropFactory","getValueProxy","total","propertyGetTextProp","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","eff","setLocationHref","setSubframeRendering","setIDPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","useWebWorker","__getFactory","scripts","myScript","LuxonError","_Error","InvalidDateTimeError","_LuxonError","toMessage","_inheritsLoose","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","DATE_SHORT","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","TIME_WITH_SECONDS","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","hasIntl","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","bestBy","best","pick","integerBetween","thing","padStart","minus","repeat","parseInteger","parseMillis","fraction","roundTo","digits","towardZero","factor","trunc","isLeapYear","daysInYear","daysInMonth","modMonth","floorMod","objToLocalTS","UTC","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","untruncateYear","parseZoneInfo","offsetFormat","intlOpts","modified","intl","without","format","signedOffset","offHourStr","offMinuteStr","offHour","offMin","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","formatOffset","sign","RangeError","timeObject","ianaRegex","monthsLong","monthsShort","monthsNarrow","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","stringifyTokens","splits","tokenToString","_step","_createForOfIteratorHelperLoose","literal","_macroTokenToFormatOpts","D","DD","DDD","DDDD","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","formatOpts","loc","systemLoc","parseFormat","fmt","currentFull","bracketed","macroTokenToFormatOpts","formatWithSystemDefault","dt","redefaultToSystem","dtFormatter","formatDateTime","formatDateTimeParts","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","zone","meridiem","meridiemForDateTime","monthForDateTime","weekdayForDateTime","era","eraForDateTime","offsetName","zoneName","weekNumber","ordinal","quarter","maybeMacro","formatDurationFromString","dur","lildur","tokenToField","realTokens","collapsed","shiftTo","mapped","Invalid","explanation","Zone","otherZone","singleton","LocalZone","_Zone","getTimezoneOffset","matchingRegex","dtfCache","typeToPos","ianaZoneCache","IANAZone","valid","isValidZone","resetCache","isValidSpecifier","parseGMTOffset","specifier","NaN","dtf","formatted","_formatted$i","partsOffset","fMonth","fDay","hackyOffset","asTS","over","singleton$1","FixedOffsetZone","fixed","utcInstance","parseSpecifier","InvalidZone","normalizeZone","defaultZone","lowered","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","getCachedRTF","_opts","cacheKeyOpts","inf","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","PolyNumberFormatter","useGrouping","minimumIntegerDigits","NumberFormat","getCachedINF","PolyDateFormatter","universal","gmtOffset","offsetZ","isOffsetZoneSupported","tokenFormat","knownFormat","dateTimeHuge","formatString","PolyRelFormatter","isEnglish","rtf","numeric","narrow","quarters","weeks","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatRelativeTime","numbering","specifiedLocale","_parseLocaleString","localeStr","uIndex","smaller","calendar","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","intlConfigString","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","computedSys","systemLocale","fromObject","_temp","hasFTP","isActuallyEn","hasNoWeirdness","alts","redefaultToEN","formatStr","utc","mapMonths","mapWeekdays","matching","fastNumbers","relFormatter","combineRegexes","regexes","full","combineExtractors","extractors","mergedVals","mergedZone","_ex","patterns","_patterns","_patterns$_i","regex","extractor","simpleParse","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","extractISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","conf","conversionAccuracy","Duration","convert","fromMap","fromUnit","toMap","toUnit","conv","raw","antiTrunc","accurate","invalid","isLuxonDuration","normalizeUnit","_parseISODuration","parseISODuration","fromISOTime","_parseISOTimeOnly","parseISOTimeOnly","week","isDuration","fmtOpts","toObject","includeConfig","toISO","toISOTime","millis","toMillis","suppressMilliseconds","suppressSeconds","includePrefix","friendlyDuration","negate","mapUnits","reconfigure","vals","normalizeValues","lastUnit","_step2","built","accumulated","_iterator2","own","ak","down","negated","_i2","_Object$keys2","_step3","_iterator3","durationish","INVALID$1","validateStartEnd","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","_split","startIsValid","endIsValid","_dur","isInterval","toDuration","hasSame","isAfter","isBefore","splitAt","dateTimes","sorted","results","splitBy","idx","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","_intervals$sort$reduc","sofar","xor","_Array$prototype","currentCount","difference","toISODate","_temp2","_ref3$separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$locObj","locObj","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$locObj","_ref2$outputCalendar","_temp3","_ref3$locale","_ref3$numberingSystem","_ref3$locObj","weekdaysFormat","_temp4","_ref4$locale","_ref4$numberingSystem","_ref4$locObj","_temp5","_ref5$locale","_temp6","_ref6$locale","features","intlTokens","zones","dayDiff","earlier","utcDayStart","toUTC","keepLocalTime","_diff","_highOrderDiffs","lowestOrder","highWater","_differs","_differs$_i","differ","_cursor$plus","_cursor$plus2","highOrderDiffs","remainingMillis","lowerOrderUnits","_cursor$plus3","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","MISSING_FTP","intUnit","post","deser","_numberingSystemsUTF","parseDigits","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","strings","startIndex","simple","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","tokenForPart","explainFromTokens","expandMacroTokens","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","unitForToken","disqualifyingUnit","_buildRegex","buildRegex","regexString","_match","matchIndex","rawMatches","Z","M","G","toField","dateTimeFromMatches","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID$2","MAX_DATE","unsupportedZone","possiblyCachedWeekData","clone$1","inst","old","fixOffset","localTS","utcGuess","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","_ref$suppressSeconds","_ref$suppressMillisec","includeOffset","_ref$includePrefix","_ref$includeZone","includeZone","_ref$spaceZone","spaceZone","_ref$format","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits$1","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","_zone","isLuxonDateTime","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","foundFirst","higherOrderInvalid","validWeek","validWeekday","hasInvalidWeekData","validOrdinal","hasInvalidOrdinalData","_objToTS2","_parseISODate","parseISODate","fromRFC2822","_parseRFC2822Date","preprocessRFC2822","parseRFC2822Date","fromHTTP","_parseHTTPDate","parseHTTPDate","fromFormat","_opts$locale","_opts$numberingSystem","_parseFromTokens","_explainFromTokens","parseFromTokens","fromString","fromSQL","_parseSQL","parseSQL","resolvedLocaleOpts","_Formatter$create$res","toLocal","_ref3$keepLocalTime","_ref3$keepCalendarTim","keepCalendarTime","newTS","offsetGuess","setLocale","mixed","settingWeekStuff","_objToTS4","normalizedUnit","_this$plus","toLocaleParts","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$includePrefix","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7$includeOffset","_ref7$includeZone","toSQL","toBSON","otherDateTime","durOpts","otherIsLater","diffed","diffNow","inputMs","otherZoneDateTime","toRelative","toRelativeCalendar","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","ReactPropTypes","bool","any","elementType","objectOf","oneOfType","checkPropTypes","freeGlobal","punycode","maxInt","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","ucs2decode","ucs2encode","digitToBasic","digit","adapt","numPoints","firstTime","basic","oldi","baseMinusT","codePoint","inputLength","bias","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","strict","keysSorter","removeHash","hashStart","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","arrayValue","parserForArrayFormat","param","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","url_","parseFragmentIdentifier","fragmentIdentifier","queryFromUrl","parsedQueryFromUrl","getHash","exclude","exclusionFilter","qs","sep","eq","maxKeys","kstr","vstr","stringifyPrimitive","aa","ca","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","ab","bb","db","eb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","br","embed","hr","keygen","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","Uc","jd","kd","ld","md","nd","od","pd","qd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","vd","Ad","screenX","screenY","ctrlKey","altKey","metaKey","getModifierState","zd","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","le","datetime","password","tel","oe","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","removeAllRanges","addRange","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","hf","lf","mf","nf","Ub","pf","qf","rf","sf","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","Vf","H","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","bh","eventTime","lane","dh","K","eh","gh","hh","ih","jh","refs","kh","nh","_reactInternals","enqueueSetState","L","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","qi","ri","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useInsertionEffect","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","kj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","Hj","Ij","Jj","Kj","U","Lj","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","pk","Y","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unstable_scheduleHydration","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","supportsFiber","inject","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_renderSubtreeIntoContainer","checkDCE","keyList","hasProp","hasElementType","arrA","arrB","dateA","dateB","regexpA","regexpB","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","propertyIsUnsafe","customMerge","getMergeFunction","deepmerge_1","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","react_1","reactNode","isHTMLElement","isShadowRoot","ShadowRoot","includeScale","getWindowScroll","win","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","offsetLeft","assignedSlot","listScrollParents","_element$ownerDocumen","visualViewport","updatedList","isTableElement","getTrueOffsetParent","currentNode","contain","getContainingBlock","basePlacements","clippingParents","viewport","variationPlacements","modifierPhases","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","modifiersData","effectCleanupFns","setOptionsAction","cleanupModifierEffects","contextElement","phase","orderModifiers","existing","mergeByName","_ref3$options","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","commonX","commonY","unsetSides","mapToStyles","_Object$assign2","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","roundOffsetsByDPR","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","getOppositeVariationPlacement","rootNode","getRootNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","within","mathMax","mathMin","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","additive","minLen","maxLen","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","createPopper","_options$scroll","_options$resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","initialStyles","attribute","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","_loop","fittingPlacement","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","prevOptions","optionsWithDefaults","_React$useState","updateStateModifier","fromEntries","popperOptions","newOptions","popperInstanceRef","popperInstance","defaultCreatePopper","unwrapArray","safeInvoke","hasMap","hasSet","hasArrayBuffer","guardAgainstInvalidArgTypes","propIsRequired","propExists","missingPropError","BrowserRouter","Router","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","navigate","_onClick","isModifiedEvent","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","sensitive","styleProp","escapedPath","classnames","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","emitter","changedBits","createEventEmitter","_proto","nextProps","oldValue","_Component2","observedBits","_proto2","createNamedContext","historyContext","_pendingLocation","staticContext","computeRootMatch","isExact","Lifecycle","onMount","onUnmount","Prompt","when","_ref$when","cacheLimit","cacheCount","generatePath","pathToRegexp","compilePath","pretty","Redirect","computedMatch","_ref$push","cache$1","cacheLimit$1","cacheCount$1","_options$strict","_options$sensitive","cacheKey","pathCache","compilePath$1","_compilePath","Route","context$1","createURL","staticHandler","methodName","Switch","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useParams","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","attachKeys","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","useMeasure","polyfill","offsetSize","scrollContainers","lastBounds","scrollDebounce","resizeDebounce","mounted","resizeChange","scrollChange","areBoundsEqual","createDebounce","removeListeners","addListeners","scrollContainer","onScroll","onWindowResize","findScrollContainers","__self","__source","jsx","jsxs","escape","_status","_result","toArray","cloneElement","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","lazy","startTransition","unstable_act","sortIndex","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","E_NOSCROLL","E_CANCELLED","make","inOutSine","cancelled","eased","parents","separatorIndex","util","Url","slashes","auth","hostname","urlParse","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","esc","qm","resolveObject","tkeys","tkey","rkeys","rkey","relPath","isSourceAbs","isRelAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","useSyncExternalStoreWithSelector","FocusManager","isServer","onSubscribe","cleanup","setEventListener","onUnsubscribe","_this$cleanup","hasListeners","_this$cleanup2","focused","setFocused","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","fetchMore","isFetchingNextPage","isFetchingPreviousPage","oldPages","pages","oldPageParams","pageParams","newPageParams","buildNewPages","page","fetchPage","_context$signal","_context$signal2","aborted","queryFnResult","getNextPageParam","getPreviousPageParam","hasNextPage","nextPageParam","hasPreviousPage","previousPageParam","_this$retryer$continu","execute","executeMutation","_this$options$retry","mutationFn","variables","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","onMutate","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","failureReason","onMutationUpdate","transactions","notifyFn","batchNotifyFn","scheduleMicrotask","originalQueue","batchCalls","setNotifyFunction","setBatchNotifyFunction","createNotifyManager","onlineEvents","OnlineManager","online","setOnline","onLine","QueryObserver","trackedProps","selectError","bindMethods","currentQuery","shouldFetchOnMount","executeFetch","updateTimers","shouldFetchOn","clearStaleTimeout","clearRefetchInterval","notifyOptions","prevQuery","shallowEqualObjects","updateQuery","shouldFetchOptionally","updateResult","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","createResult","optimisticResult","keepPreviousData","placeholderData","isPlaceholderData","shouldAssignObserverCurrentProperties","currentResult","currentResultOptions","currentResultState","trackResult","trackedResult","getCurrentQuery","fetchOptimistic","_fetchOptions$cancelR","isValidTimeout","staleTimeoutId","_this$options$refetch","refetchInterval","nextInterval","refetchIntervalId","refetchIntervalInBackground","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","isPreviousData","_optimisticResults","fetchOnMount","fetchOptionally","isSuccess","selectFn","selectResult","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","retryOnMount","shouldLoadOnMount","refetchOnMount","gcTimeout","newCacheTime","defaultRetryDelay","CancelledError","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","continueResolve","canContinue","promiseOrValue","_config$retry","_config$retryDelay","shouldRetry","sleep","isQueryKey","parseMutationArgs","stale","queryKeyHashFn","partialDeepEqual","replaceEqualDeep","isPlainArray","aSize","bItems","bSize","equalItems","hasObjectPrototype","ctor","prot","AbortController","isDataEqual","structuralSharing","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","QueryClientProvider","Context","createValue","clearReset","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","IsRestoringContext","useIsRestoring","errorResetBoundary","useClearResetErrorBoundary","getHasError","ensureStaleTime","shouldSuspend","isRestoring","willFetch","useBaseQuery","Observer","ensurePreventErrorBoundaryRetry","onStoreChange","InfiniteQueryObserver","fetchNextPage","fetchPreviousPage","_state$fetchMeta","_state$fetchMeta$fetc","_state$fetchMeta2","_state$fetchMeta2$fet","_state$data","_state$data2","useInfiniteQuery","mutate","_this$currentMutation","currentMutation","_this$currentMutation2","mutateOptions","isIdle","_this$mutateOptions$o","_this$mutateOptions","_this$mutateOptions$o2","_this$mutateOptions2","_this$mutateOptions$o3","_this$mutateOptions3","_this$mutateOptions$o4","_this$mutateOptions4","shouldThrowError","useSyncExternalStore$1","_useErrorBoundary","thisArg","kindOf","kindOfTest","typeOfTest","isArrayBuffer","toStringTag","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","reduceDescriptors","descriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","asap","nextTick","isFormData","kind","isArrayBufferView","isBoolean","isStream","pipe","caseless","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","forEachEntry","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","AxiosError","captureStackTrace","utils","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","formData","metaTokens","option","visitor","defaultVisitor","useBlob","convertValue","Buffer","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","isNode","toURLEncodedForm","formSerializer","_FormData","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","matcher","deleted","deleteHeader","formatHeader","targets","asStrings","computed","accessor","accessors","defineAccessor","accessorName","buildAccessors","headerValue","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","bytes","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","lastArgs","timer","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","throttle","lengthComputable","progressBytes","estimated","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","requestURL","write","expires","secure","cookie","toGMTString","read","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","btoa","unescape","isURLSameOrigin","xsrfValue","cookies","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","getAllResponseHeaders","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","upload","parseProtocol","composeSignals","signals","controller","streamChunk","chunk","chunkSize","readStream","stream","asyncIterator","reader","getReader","trackStream","onProgress","readBytes","_onFinish","ReadableStream","pull","loadedBytes","enqueue","highWaterMark","isFetchSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","knownAdapters","http","xhrAdapter","composedSignal","toAbortSignal","requestContentLength","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","ERR_DEPRECATED","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","resolvePromise","_listeners","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","Cancel","formToJSON","getAdapter","useIsMounted","PopChildMeasure","isPresent","sizeRef","PopChild","motionPopId","sheet","insertRule","PresenceChild","onExitComplete","custom","presenceAffectsLayout","presenceChildren","useConstant","newChildrenMap","childId","register","PresenceContext","getChildKey","AnimatePresence","exitBeforeEnter","LayoutGroupContext","forcedRenderCount","setForcedRenderCount","postRender","useForceUpdate","filteredChildren","filtered","onlyElements","childrenToRender","exitingChildren","presentChildren","allChildren","isInitialRender","updateChildLookup","presentKeys","targetKeys","numPresent","insertionIndex","exitingComponent","onExit","leftOverKeys","childKey","leftOverKey","presentChild","presentChildKey","Queue","stepsOrder","cancelFrame","frameData","scheduleNextBatch","allowKeepAlive","runNextFrame","useDefaultElapsed","isProcessing","thisFrame","nextFrame","numToRun","flushNextFrame","toKeepAlive","addToCurrentFrame","createRenderStep","processStep","stepId","processBatch","keepAlive","createRenderBatcher","MotionConfigContext","transformPagePoint","isStatic","reducedMotion","MotionContext","LazyContext","camelToDash","optimizedAppearDataAttribute","isRefObject","isVariantLabel","isAnimationControls","variantPriorityOrder","variantProps","isControllingVariants","isVariantNode","variants","useCreateMotionContext","inherit","getCurrentTreeVariants","variantLabelsAsDependency","featureProps","drag","hover","tap","pan","inView","layout","featureDefinitions","isEnabled","SwitchLayoutGroupContext","motionComponentSymbol","createMotionComponent","preloadedFeatures","createVisualElement","useRender","useVisualState","loadFeatures","ForwardRefComponent","externalRef","MeasureLayout","configAndProps","layoutId","useLayoutId","visualState","visualElement","lazyContext","presenceContext","reducedMotionConfig","visualElementRef","blockInitialAnimation","wantsHandoff","HandoffComplete","animationState","animateChanges","updateFeatures","useVisualElement","initialLayoutGroupConfig","isStrict","useMotionRef","layoutGroupId","createMotionProxy","createConfig","componentCache","_target","lowercaseSVGElements","isSVGComponent","scaleCorrectors","transformPropOrder","transformProps","isForcedMotionValue","isMotionValue","getVelocity","translateAlias","transformPerspective","numTransforms","checkStringStartsWith","isCSSVariableName","isCSSVariableToken","getValueAsType","alpha","sanitize","floatRegex","colorRegex","singleColorRegex","createUnitType","degrees","vw","progressPercentage","numberValueTypes","borderWidth","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxHeight","scaleZ","skewX","skewY","translateX","translateY","translateZ","originX","originY","originZ","numOctaves","buildHTMLStyles","latestValues","transformTemplate","hasTransform","hasTransformOrigin","transformIsNone","valueType","valueAsType","transformIsDefault","enableHardwareAcceleration","allowTransformNone","transformString","transformName","buildTransform","createHtmlRenderState","copyRawValuesOnly","useStyle","useInitialMotionValues","transformValues","useHTMLProps","htmlProps","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","onTap","onTapStart","whileTap","validMotionProps","isValidMotionProp","shouldForward","isValidProp","calcOrigin","dashKeys","camelKeys","buildSVGAttrs","isSVGTag","attrX","attrY","attrScale","pathSpacing","pathOffset","latest","pxOriginX","pxOriginY","calcSVGTransformOrigin","spacing","useDashCase","buildSVGPath","createSvgRenderState","useSVGProps","_isStatic","visualProps","rawStyles","createUseRender","forwardMotionProps","filteredProps","isDom","filterProps","elementProps","renderedChildren","renderHTML","projection","getProjectionStyles","camelCaseAttributes","renderSVG","renderState","_styleProp","scrapeMotionValuesFromProps","newValues","scrapeMotionValuesFromProps$1","resolveVariantFromProps","definition","currentValues","currentVelocity","isKeyframesTarget","isCustomValue","mix","resolveFinalValueInKeyframes","resolveMotionValue","unwrappedValue","makeUseVisualState","createRenderState","makeLatestValues","makeState","scrapeMotionValues","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","resolved","transitionEnd","valueTarget","svgMotionConfig","htmlMotionConfig","addDomEvent","isPrimaryPointer","extractEventInfo","pointType","addPointerInfo","addPointerEvent","combineFunctions","createLock","openLock","globalHorizontalLock","globalVerticalLock","getGlobalLock","openHorizontal","openVertical","isDragActive","openGestureLock","Feature","addHoverEvent","callbackName","getProps","whileHover","setActive","isNodeOrChild","fireSyntheticPointerEvent","syntheticPointerEvent","PointerEvent","observerCallbacks","fireObserverCallback","fireAllObserverCallbacks","observeIntersection","rootInteresectionObserver","lookupRoot","rootObservers","IntersectionObserver","initIntersectionObserver","thresholdNames","gestureAnimations","hasEnteredView","isInView","startObserver","rootMargin","isIntersecting","onViewportEnter","onViewportLeave","hasOptionsChanged","prevViewport","hasViewportOptionChanged","removeStartListeners","removeEndListeners","removeAccessibleListeners","startPointerPress","startEvent","startInfo","isPressing","removePointerUpListener","endPointerPress","endEvent","endInfo","checkPressEnd","onTapCancel","globalTapTarget","removePointerCancelListener","cancelEvent","cancelInfo","cancelPress","startPress","startAccessiblePress","removeKeydownListener","keydownEvent","keyupEvent","removeBlurListener","removePointerListener","removeFocusListener","isFocusVisible","shallowCompare","prevLength","resolveVariant","getCurrent","secondsToMilliseconds","instantAnimationState","isBezierDefinition","easing","isWaapiSupportedEasing","supportedWaapiEasing","cubicBezierAsString","easeInOut","circIn","circOut","backIn","backOut","mapEasingToNativeEasing","subdivisionPrecision","subdivisionMaxIterations","cubicBezier","getTForX","isEasingArray","mirrorEasing","reverseEasing","circInOut","backInOut","easingLookup","anticipate","easingDefinitionToFunction","isColorString","testProp","splitColor","aName","bName","cName","rgbUnit","clampRgbUnit","rgba","red","green","blue","alpha$1","hsla","hue","saturation","lightness","hueToRgb","mixLinearColor","fromExpo","colorTypes","asRGBA","model","hslaToRgba","mixColor","fromRGBA","toRGBA","blended","cssVarTokeniser","countKey","colorTokeniser","numberTokeniser","tokenise","tokenised","analyseComplexValue","originalValue","numVars","numColors","numNumbers","parseComplexValue","createTransformer","numValues","convertNumbersToZero","complex","getAnimatableNone","transformer","mixImmediate","getMixer","mixComplex","mixArray","blendValue","fromThis","mixObject","template","originStats","targetStats","warning","toFromDifference","mixNumber","createMixers","customMixer","mixers","mixerFactory","numMixers","mixer","easingFunction","interpolate","isClamp","interpolator","progressInRange","defaultOffset","remaining","offsetProgress","fillOffset","defaultEasing","keyframeValues","times","easingFunctions","absoluteTimes","convertOffsetToTimes","mapTimeToKeyframe","calculatedDuration","velocityPerSecond","velocitySampleDuration","calcGeneratorVelocity","resolveValue","prevT","safeMin","minDuration","maxDuration","minDamping","maxDamping","findSpring","derivative","bounce","mass","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","exp","initialGuess","rootIterations","approximateRoot","stiffness","damping","durationKeys","physicsKeys","isSpringType","spring","restDelta","restSpeed","isResolvedFromDuration","springOptions","derived","getSpringOptions","initialVelocity","initialDelta","undampedAngularFreq","isGranularScale","resolveSpring","angularFreq","dampedAngularFreq","freqForT","sinh","cosh","isBelowVelocityThreshold","isBelowDisplacementThreshold","inertia","power","timeConstant","bounceDamping","bounceStiffness","modifyTarget","nearestBoundary","amplitude","ideal","calcDelta","calcLatest","applyFriction","timeReachedBoundary","spring$1","checkCatchBoundary","hasUpdatedFrame","frameloopDriver","passTimestamp","maxGeneratorDuration","calcGeneratorDuration","types","decay","tween","animateValue","resolveFinishedPromise","currentFinishedPromise","driver","keyframes$1","repeatDelay","repeatType","onPlay","onStop","hasStopped","updateFinishedPromise","animationDriver","generatorFactory","mapNumbersToKeyframes","mirroredGenerator","playState","holdTime","cancelTime","resolvedDuration","totalDuration","tick","timeWithoutDelay","isInDelayPhase","elapsed","frameGenerator","currentIteration","iterationProgress","isAnimationFinished","finish","stopAnimationDriver","controls","newTime","newSpeed","complete","sample","supportsWaapi","acceleratedValues","createAcceleratedAnimation","valueName","pendingCancel","requiresPregeneratedKeyframes","sampleAnimation","pregeneratedKeyframes","keyframeOptions","animateStyle","owner","cancelAnimation","safeCancel","onfinish","getFinalKeyframe","attachTimeline","timeline","playbackRate","setWithVelocity","underDampedSpring","keyframesTransition","getDefaultTransition","valueKey","isAnimatable","maxDefaults","applyDefaultFilter","functionRegex","functions","defaultValueTypes","outlineColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","WebkitFilter","getDefaultValueType","defaultValueType","isZeroValueString","isNone","getValueTransition","MotionGlobalConfig","animateMotionValue","valueTransition","isTargetAnimatable","defaultOrigin","animatableTemplateValue","noneKeyframeIndexes","getKeyframes","originKeyframe","targetKeyframe","isOriginAnimatable","_delay","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","createInstantAnimation","isHandoff","acceleratedAnimation","isWillChangeMotionValue","isNumericalString","addUniqueItem","SubscriptionManager","subscriptions","numSubscriptions","collectMotionValues","MotionValue","timeDelta","lastUpdated","canTrackVelocity","updateAndNotify","scheduleVelocityCheck","change","velocityChange","renderRequest","velocityCheck","hasAnimated","clearListeners","eventManagers","attach","passiveEffect","stopPassiveEffect","jump","getPrevious","startAnimation","animationStart","animationComplete","clearAnimation","animationCancel","isAnimating","motionValue","testValueType","dimensionValueTypes","findDimensionValueType","valueTypes","setMotionValue","addValue","setTarget","makeTargetAnimatable","getOriginFromTransition","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","hasKeyframesChanged","animateTarget","transitionOverride","animationTypeState","HandoffAppearAnimations","appearId","canSkip","shouldReduceMotion","animateVariant","getAnimation","getChildAnimations","variantChildren","forwardDelay","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","animateChildren","sortNodePosition","reversePriorityOrder","numAnimationTypes","animateList","resolvedDefinition","animateVisualElement","createAnimationState","createTypeState","whileInView","whileDrag","whileFocus","buildResolvedTypeValues","changedActiveType","getVariantContext","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isInherited","manuallyAnimateOnMount","prevProp","shouldAnimateType","checkVariantsDidChange","handledRemovedValues","definitionList","prevResolvedValues","markToAnimate","valueHasChanged","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","setAnimateFunction","makeAnimator","updateAnimationControlsSubscription","prevAnimate","prevIsPresent","prevPresenceContext","exitAnimation","PanSession","contextWindow","dragSnapToOrigin","lastMoveEvent","lastMoveEventInfo","updatePoint","getPanInfo","isPanStarted","isDistancePastThreshold","xDelta","yDelta","distance2D","onStart","onMove","handlePointerMove","transformPoint","handlePointerUp","onEnd","onSessionEnd","resumeAnimation","panInfo","initialInfo","onSessionStart","updateHandlers","subtractPoint","lastDevicePoint","startDevicePoint","timestampedPoint","calcLength","isNear","maxDistance","calcAxisDelta","originPoint","calcBoxDelta","calcRelativeAxis","calcRelativeAxisPosition","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","label","createDelta","createBox","eachAxis","convertBoundingBoxToBox","isIdentityScale","hasScale","has2DTranslate","is2DTranslate","scalePoint","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","snapToDefault","translateAxis","transformAxis","scaleKey","originKey","axisOrigin","xKeys","yKeys","transformBox","measureViewportBox","topLeft","bottomRight","transformBoxPoints","getContextWindow","elementDragControls","VisualElementDragControls","openGlobalLock","isDragging","currentDirection","constraints","hasMutatedConstraints","elastic","originEvent","snapToCursor","panSession","pauseAnimation","stopAnimation","dragPropagation","onDragStart","resolveConstraints","isAnimationBlocked","getAxisMotionValue","measuredAxis","layoutBox","dragDirectionLock","onDirectionLock","onDrag","lockThreshold","getCurrentDirection","updateAxis","getAnimationState","getTransformPagePoint","onDragEnd","_point","shouldDrag","axisValue","applyConstraints","dragConstraints","measure","prevConstraints","resolveRefConstraints","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","constraintsBox","rootProjectionNode","viewportBox","measurePageBox","measuredConstraints","calcViewportConstraints","userConstraints","convertBoxToBoundingBox","dragMomentum","dragTransition","onDragTransitionEnd","momentumAnimations","startAxisValueAnimation","dragKey","externalMotionValue","scalePositionWithinConstraints","boxProgress","sourceLength","targetLength","updateScroll","updateLayout","stopPointerListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","stopLayoutUpdateListener","hasLayoutChanged","asyncHandler","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","pixelsToPercent","pixels","correctBorderRadius","correct","correctBoxShadow","treeScale","projectionDelta","shadow","xScale","yScale","averageScale","MeasureLayoutWithContext","React__default","layoutGroup","switchLayoutGroup","correctors","defaultScaleCorrectors","didUpdate","safeToRemove","layoutDependency","willUpdate","promote","relegate","currentAnimation","isLead","promoteContext","scheduleCheckAfterUnmount","deregister","usePresence","applyTo","borders","numBorders","isPx","getRadius","radiusName","easeCrossfadeIn","compress","easeCrossfadeOut","copyAxisInto","originAxis","copyBoxInto","originBox","removePointDelta","removeAxisTransforms","sourceAxis","removeAxisDelta","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","boxEqualsRounded","NodeStack","scheduleRender","prevLead","lead","indexOfNode","member","preserveFollowOpacity","resumeFrom","preserveOpacity","snapshot","animationValues","isUpdating","isLayoutDirty","crossfade","exitAnimationComplete","resumingFrom","removeLeadSnapshot","buildProjectionTransform","latestTransform","xTranslate","yTranslate","elementScaleX","elementScaleY","compareByDepth","FlatTree","isDirty","transformAxes","hiddenVisibility","projectionFrameData","totalNodes","resolvedTargetDeltas","recalculatedProjection","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","animationId","isTreeAnimating","isProjectionDirty","isSharedProjectionDirty","isTransformDirty","updateManuallyBlocked","updateBlockedByResize","needsReset","shouldResetTransform","eventHandlers","hasTreeAnimated","updateScheduled","projectionUpdateScheduled","checkUpdateFailed","clearAllSnapshots","updateProjection","propagateDirtyNodes","resolveTargetDelta","calcProjection","cleanDirtyNodes","MotionDebug","record","hasProjected","animationProgress","sharedNodes","subscriptionManager","cancelDelay","resizeUnblockUpdate","checkElapsed","finishAnimation","registerSharedNode","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","layoutRoot","setAnimationOrigin","animationOptions","blockUpdate","unblockUpdate","isUpdateBlocked","startUpdate","resetRotation","getTransformTemplate","prevTransformTemplateValue","updateSnapshot","clearMeasurements","clearIsLayoutDirty","resetTransformStyle","notifyLayoutUpdate","preRender","clearSnapshot","removeLeadSnapshots","scheduleUpdateProjection","alwaysMeasureLayout","prevLayout","layoutCorrected","needsMeasurement","layoutScroll","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","removeTransform","pageBox","removeElementScroll","roundAxis","measuredBox","boxWithoutScroll","rootScroll","applyTransform","transformOnly","withTransforms","boxWithoutTransform","setTargetDelta","targetDelta","forceRelativeParentToResolveTarget","relativeParent","resolvedRelativeTargetAt","getLead","isShared","attemptToResolveRelativeTarget","getClosestProjectingParent","relativeTargetOrigin","targetWithTransforms","isProjecting","pendingAnimation","prevTreeScaleX","prevTreeScaleY","treePath","isSharedTransition","treeLength","applyTreeDeltas","projectionTransform","projectionDeltaWithTransform","prevProjectionTransform","notifyAll","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","isOnlyMember","shouldCrossfadeOpacity","hasOpacityCrossfade","prevRelativeTarget","mixTargetDelta","mixAxisDelta","mixAxis","follow","opacityExit","borderLabel","followRadius","leadRadius","mixValues","motionValue$1","animateSingleValue","applyTransformsToTarget","shouldAnimatePositionOnly","animationType","initialPromotionConfig","shouldPreserveFollowOpacity","getPrevLead","hasRotate","resetValues","setStaticValue","emptyStyles","valuesToRender","corrected","resetTree","measuredLayout","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","userAgentContains","roundPoint","DocumentProjectionNode","HTMLProjectionNode","documentNode","removePointerDownListener","onPointerDown","pointerDownEvent","createPanHandlers","onPanSessionStart","onPanStart","onPan","onPanEnd","removeGroupControls","dragControls","ProjectionNode","splitCSSVariableRegex","maxDepth","getVariableValue","parseCSSVariable","trimmed","positionalKeys","isPositionalKey","isNumOrPxType","getPosFromMatrix","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","positionalValues","_ref9","_ref10","_ref11","checkAndConvertChangedValueTypes","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","fromType","toType","numKeyframes","removedTransforms","removeNonTranslationalTransform","convertedTarget","convertChangedValueTypes","changedKeys","originBbox","elementComputedStyle","targetBbox","_ref12","unitConversion","hasPositionalKey","parseDomVariant","resolveCSSVariables","prefersReducedMotion","hasReducedMotionListener","visualElementStore","featureNames","numFeatures","propEventHandlers","numVariantProps","VisualElement","valueSubscriptions","prevMotionValues","propEventSubscriptions","notifyUpdate","triggerBuild","renderInstance","baseTarget","initialMotionValues","_prevProps","removeFromVariantTree","addVariantChild","bindToMotionValue","motionMediaQuery","setReducedMotionPreferences","initPrefersReducedMotion","valueIsTransform","removeOnChange","latestValue","removeOnRenderRequest","sortInstanceNodePosition","ProjectionNodeConstructor","renderedProps","FeatureConstructor","MeasureLayoutComponent","measureInstanceViewportBox","getStaticValue","canMutate","makeTargetAnimatableFromInstance","prevValue","existingValue","updateMotionValuesFromProps","handleChildMotionValue","getVariant","getClosestVariantNode","closestVariantNode","removeValueFromRenderState","readValue","getBaseTargetFromProps","readValueFromInstance","setBaseTarget","valueFromInitial","DOMVisualElement","transitionOrigin","getOrigin","newValueKeys","numNewValues","targetValue","checkTargetForNewValues","HTMLVisualElement","defaultType","childSubscription","SVGVisualElement","createDomVisualElement","createDomMotionConfig","__data__","assocIndexOf","ListCache","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","getNative","nativeCreate","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","isKeyable","getMapData","MapCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","pairs","LARGE_ARRAY_SIZE","stackClear","stackDelete","stackGet","stackHas","stackSet","iteratee","inherited","isArg","isArguments","isBuff","isType","skipIndexes","baseTimes","isIndex","objValue","baseAssignValue","symbolsFunc","objectProto","nativeObjectToString","symToStringTag","isOwn","unmasked","getRawTag","freeExports","freeModule","allocUnsafe","typedArray","isNew","maskSrcKey","uid","coreJsData","IE_PROTO","reIsHostCtor","funcProto","funcToString","reIsNative","toSource","baseIsNative","overArg","resIndex","nativeGetSymbols","arrayFilter","mapTag","promiseTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","baseGetTag","ctorString","objectCreate","isPrototype","baseCreate","reIsUint","freeProcess","binding","freeSelf","resolver","memoized","Cache","rePropName","reEscapeChar","memoizeCapped","quote","subString","baseIsArguments","isLength","stubFalse","objectCtorString","typedArrayTags","nodeIsTypedArray","baseIsTypedArray","nativeKeys","isArrayLike","arrayLikeKeys","baseKeys","nativeKeysIn","isProto","baseKeysIn","symbolToString","baseToString","_curry1","curryN","origFn","_concat","_curry2","_curry3","assocPath","nextObj","isNil","_has","_isInteger","_assoc","rxf","_xfBase","_forceReduced","preservingReduced","_isArrayLike","_reduce","_flatCat","_dispatchable","_xchain","monad","_makeFlat","pluck","_map","_curryN","received","combined","argsIdx","combinedIdx","_isPlaceholder","_arity","dissocPath","_dissoc","_shallowCloneObject","assoc","_isString","_isObject","_isArguments","_isTypedArray","_uniqContentEquals","aIterator","bIterator","stackA","stackB","_arrayFromIterator","_equals","_includesWith","aItem","_objectIs","typeA","_functionName","ignoreCase","multiline","sticky","unicode","keysA","extendedStackA","extendedStackB","XFilter","_xfilter","pred","filterable","_filter","XFind","_reduced","_xfind","XFindLast","_xfindLast","_path","nth","_includes","elt","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","a0","a3","a4","a5","a6","a7","a8","a9","iter","_checkForMethod","methodname","set1","set2","len1","len2","f3","methodNames","transducerCreator","_isTransformer","transducer","_indexOf","recursive","flatt","jlen","ilen","functor","nextKey","_pipe","XWrap","thisObj","_iterableReduce","_methodReduce","symIterator","_xwrap","_arrayReduce","pad","converge","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","checkArgsLength","XMap","_xmap","mFn","_objectAssign","_isNumber","replacement","uniqBy","XUniqBy","_xuniqBy","appliedItem","xs","isProduction","provided","ReactExports","useSyncExternalStoreExports","didWarnAboutEqualityFn","createImpl","createState","api","useBoundStore","equalityFn","getServerState","getInitialState","react","createJSONStorage","getStorage","str2","reviver","replacer","toThenable","_onRejected","_onFulfilled","persistImpl","baseOptions","oldImpl","deserialize","partialize","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","thenableSerialize","errorInSync","thenable","serializedValue","savedSetState","configResult","stateFromStorage","postRehydrationCallback","onRehydrateStorage","storageValue","deserializedStorageValue","migrate","migratedState","_a2","clearStorage","rehydrate","onHydrate","onFinishHydration","newImpl","skipHydration","shallow$1","objA","objB","createWithEqualityFnImpl","defaultEqualityFn","useBoundStoreWithEqualityFn","useStoreWithEqualityFn","createStoreImpl","previousState","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","leafPrototypes","getProto","chunkId","miniCssF","hmd","inProgress","needAttach","charset","nc","onScriptComplete","doneFns","nmd","loadStylesheet","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","createStylesheet","installedCssChunks","miniCss","baseURI","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","entriesPolyFill","_channels","_tabId","getRandomString","possible","getTimestamp","channelName","_channelId","isFirstChannel","channelId","_onmsg","isRemoved","tabId","subscribers","msgObj","buildResponse","editedObj","bcId","editedJSON","lsKey","REACT_APP_TILEDB_ENV","HOTJAR_ID","GOOGLE_ANALYTICS_ID","_hjSettings","hjid","hjsv","gtag","dataLayer","send_page_view","Cookies","preference","setPreference","setCookies","setupAnalytics","Login","Signup","EmailNotConfirmed","ForgotPassword","ResetPassword","CompanySSO","SSO","ConfirmEmail","redirectToAfterLogin","useSessionStorage","redirectUrl","authRouterPaths","perf","useThrottleCallback","leading","storedCallback","useLatest","trailingTimeout","clearTrailing","rightNow","storedListener","storedCleanup","targetEl","didUnsubscribe","getScrollY","useThrottle","useEvent","inverse","useGetNotificationCount","unreadCount","setUnreadCount","keysToInvalidate","countQueryKey","listQueryKey","useMarkAllNotificationsAsRead","notification","_notification$notific","_notification$notific2","_notification$notific3","_notification$notific4","_notification$notific5","_notification$notific6","_notification$notific7","_notification$notific8","_notification$notific9","_notification$notific10","_notification$notific11","_notification$notific12","_notification$notific13","_notification$notific14","_notification$notific15","_notification$notific16","_notification$notific17","_notification$notific18","_notification$notific19","_notification$notific20","_notification$notific21","_notification$notific22","_notification$notific23","_notification$notific24","_notification$notific25","_notification$notific26","_notification$notific27","notification_event","invitation","invitation_type","JOINORGANIZATION","ARRAYSHARE","invited_by","getAssetTypeName","namespace_invited","GROUPSHARE","taskgraphName","taskgraph","task_graph_event_type","Failed","Cancelled","Succeeded","Invitation","getDescriptionForInvitation","Taskgraph","getDescriptionForTaskgraph","IconMembers","AssetTypeIcon","invitationLinks","invitation_id","taskgraphLogsLinks","useChangeNotificationStatus","useDeleteNotifications","NotificationComponent","getNotificationDescription","getNotificationIcon","getNotificationLink","NotificationTemplate","useDate","changeStatusRequest","changeStatusLoading","deleteNotifications","deleteLoading","isUnread","Unread","changeNotificationStatus","statusChange","notifications","Read","onChangeStatusClick","onDeleteClick","created_at","IconCheckFilled","IconNotification","IconTrash","ErrorBoundaryContent","IconWarning","InboxContent","closeDialogFunc","useInboxStore","markAllAsRead","markAllAsReadLoading","perPage","getNotificationsQueryKey","lastPage","total_pages","pagination_metadata","_page$data","IconBellFilled","IconBellFilledSnoozed","LazyLoadListWrapper","NotificationItem","InboxButton","dialogActive","setDialogActive","useInboxPolling","shouldDoPolling","REACT_APP_DISABLE_NOTIFICATION_POLLING","unreadCountResponse","newUnreadCount","listNotificationsQueryKey","Dialog","asyncPromise","setIsLoading","onWidthUpdate","useAsync","containerRef","containerBounds","onClickHandler","BreadcrumbItemTitle","IconCarretRight","IconBulletsHorizontal","Fetching","Breadcrumb","hiddenItems","setHiddenItems","contentRef","childrenWidths","setChildWidth","updateChildWidth","widths","itemsLength","totalWidth","firstItemKey","firstItemWidth","thresholdExcludingFirstAndLastItem","lastItemWidth","itemWidth","nextTotalWidth","BreadcrumbTitle","BreadcrumbItem","BreadcrumbHiddenContent","BreadcrumbWithStore","onItemClick","Header","headerContent","useHeader","isTransparentVariant","isOverviewRoute","IconBurger","AuthRender","useAuthValue","authValue","publicValue","useGetOrganizations","TOGGLE_WORKSPACE_MENU","IconCheckMark","MainIcon","rightIcon","SecondaryIcon","WorkspaceThemeSelector","WorkspaceThemeItem","IconSun","IconMoon","IconTheme","System","WorkspaceOption","currentTheme","useTheme","WorkspaceMenu","organizations","isToggled","setFilter","toggleNamespaceSelector","useKeyDown","workspaces","userWorkspace","sublabel","orgWorkspaces","normalizeOrganizationRole","prepend","filteredWorkspaces","filterLowerCased","IconMagnifyingGlass","WorkspaceItem","MagnifyingGlass","IconSettings","settingsLinks","IconPlus","handleCreateOrganization","isNewOrganization","IconLogout","handleLogoutClick","WorkspaceMenuContextProvider","setNetwork","updateNetwork","inIframe","useDocumentVisibility","documentIsHidden","setHidden","onVisibilityChange","useShouldRenderHiddenIframe","jupyterStatus","documentVisible","pageIsRenderedInsideIframe","modalLaunchServerIsActive","Running","useJupyterOutgoingMessages","userHasNoCredits","useListenForQueuedTasksAndHandle","handleQueuedTask","network","useNetwork","errorsEncountered","iframeKey","setIframeKey","errorsEncounteredFromService","reRenderHiddenIframeDebounced","useWaitForJupyterhubToBeReadyAfterShutdown","useAutoLaunch","onErrorCapture","errorHasStatusCode","_err$response","usePollingNotebookStatus","shouldPingForStatusRef","__DEV__","notebookStatus","TERMINATING","userHasStartedLaunchingProcess","HiddenJupyterIframe","isJupyterDisabled","JUPYTER_DISABLED","indicatorVariant","Indicator","NamespaceSelector","HelpDialogItem","IconExternalLinkOutlined","HelpDialog","IconDocumentation","externalLinks","IconDollar","IconChat","IconSparkles","IconSecureShield","IconBook","MainMenu","monitorIndicatorVariant","MainMenuButton","IconHome","assetsLinks","IconDatabase","IconLaunch","monitorLinks","IconSystemStatus","academyLinks","marketplaceLinks","IconStore","IconQuestionmarkFilled","GetStarted","shouldShowModalFlow","addOnboardingItemsData","Tour","UserOnboarding","tourVisible","setTourVisible","_workspaceSelected$st","OrganizationOnboarding","useDeleteCompletedOnboardingItems","Onboarding","deleteOnboardingItems","useDeleteOnboardingItems","resetOnboarding","useGetUserMeta","useUpdateUserMeta","userMetaResponse","showFreeTierModal","updateMeta","announce_cc_removal_and_free_tier","light","imgFreeTier","dark","useFreeTierModal","Overview","Tasks","ArrayDetails","NotebookDetails","DashboardDetails","UDFDetails","MLModelDetails","Activity","Invitations","FileDetails","GroupDetails","TaskgraphsDetails","BiomedicalImagingDetails","SOMADetails","VCFDetails","PointCloudDetails","GeometryDetails","RasterDetails","VectorSearchDetails","Assets","Compute","Academy","TaskgraphLogs","Console","redirectTo","removeInvalidTokenKey","usePendingNotification","ModalContainer","JupyterContainer","MainContent","AuthGuard","PermissionsGuard","Write","invitationRouterPaths","taskGraphRouterPaths","OAuth2Login","OAuth2Consent","OAuth2","oauth2RouterPaths","StripeCallback","Callbacks","callbackRouterPaths","Logout","withErrorBoundary","Auth","IconClosefilled","Snackbar","SnackbarContainer","Routes","CSRF_TOKEN","__PROD__","__STAGE__","__TEST__","__ENTERPRISE__","__CI__","REACT_APP_CI","REACT_APP_SENTRY_RELEASE","SENTRY_DSN","SENTRY_ENVIRONMENT","init$1","resetChunkReloadState","setupEnv","setupAxios","setupSentry","REACT_APP_LOCAL_JUPYTER","REST_SERVER_URL","REACT_APP_DEV_SERVER_PROXY_TARGET","REACT_APP_ACADEMY_URL","ACADEMY_URL","rootContainer","App","serviceWorker","ready","registration","unregister"],"sourceRoot":""}