{"version":3,"sources":["../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/src/decorators/property.ts","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/src/decorators/state.ts","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/src/decorators/base.ts","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/src/decorators/query.ts","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/src/decorators/query-assigned-elements.ts","../package.json","../src/dotlottie-player.ts"],"names":["standardProperty","options","element","kind","descriptor","finisher","clazz","createProperty","key","Symbol","placement","originalKey","initializer","this","call","legacyProperty","proto","name","constructor","property","protoOrDescriptor","state","decorateProperty","_a","info","undefined","ctor","Object","defineProperty","query","selector","cache","get","_b","renderRoot","querySelector","enumerable","configurable","o","t","slotAssignedElements","window","HTMLSlotElement","prototype","assignedElements","slot","opts","assignedNodes","filter","node","nodeType","Node","ELEMENT_NODE","package_default","ELEMENT_NAME","DotLottiePlayer","s","A","loop","loopNb","a","event","target","value","frame","commonPlayer","playerState","prevState","w","manifest","theme","src","overrideRendererSettings","playbackOptions","P","animation","C","getOptions","targetAnimation","playOnShowOptions","scrollOptions","download","svgElement","data","mode","stateId","playbackKeys","dotlottie_player_styles_default","entries","O","isPlaying","isPaused","x","animationName","prev","themeName","className","animationClass","__decorateClass","n","i"],"mappings":"2MAeA,IAAMA,EAAmB,CACvBC,EACAC,IAMEA,EAAQC,OAAS,UACjBD,EAAQE,YAAAA,EACN,UAAWF,EAAQE,YAEd,CAAA,GACFF,EACHG,SAASC,EAAAA,CACPA,EAAMC,eAAeL,EAAQM,IAAKP,CAAAA,CACnC,CAAA,EAMI,CACLE,KAAM,QACNK,IAAKC,OAAAA,EACLC,UAAW,MACXN,WAAY,CAAE,EAEdO,YAAaT,EAAQM,IAUrBI,aAAAA,CACqC,OAAxBV,EAAQU,aAAgB,aACjCC,KAAKX,EAAQM,GAAAA,EAAiBN,EAAQU,YAAYE,KAAKD,IAAAA,EAE1D,EACDR,SAASC,EAAAA,CACPA,EAAMC,eAAeL,EAAQM,IAAKP,CAAAA,CACnC,CAAA,EAKDc,EAAiB,CACrBd,EACAe,EACAC,IAAAA,CAECD,EAAME,YAAuCX,eAAeU,EAAMhB,CAAAA,CAAQ,EAmCvE,SAAUkB,EAASlB,EAAAA,CAEvB,MAAO,CAACmB,EAA0CH,IAChDA,IADgDA,OAE5CF,EAAed,EAAUmB,EAA6BH,CAAAA,EACtDjB,EAAiBC,EAAUmB,CAAAA,CACnC,CC7EM,SAAUC,EAAMpB,EAAAA,CACpB,OAAOkB,EAAS,CAAA,GACXlB,EACHoB,MAAAA,EAAO,CAAA,CAEX,CCCa,IA+BAC,EACX,CAAA,CACEjB,SAAAA,EACAD,WAAAA,CAAAA,IAOF,CACEgB,EACAH,IAAAA,CAAAA,IAAAA,EAKA,GAAIA,IAAJ,OAQO,CAGL,IAAMT,GAEJe,EAACH,EAA0BT,eAFvBH,MAEuBG,IAAAA,OAAAA,EAC1BS,EAAmCZ,IAChCgB,EACJpB,GAAcqB,KACV,CACEtB,KAAM,SACNO,UAAW,YACXF,IAAAA,EACAJ,WAAYA,EAAYgB,EAAmCZ,GAAAA,CAAAA,EAE7D,CAAA,GAAKY,EAAoCZ,IAAAA,CAAAA,EAQ/C,OAPIH,GAAYoB,OACdD,EAAKnB,SAAW,SACdqB,EAAAA,CAEArB,EAASqB,EAA2ClB,CAAAA,CACtD,GAEKgB,EA/Be,CACtB,IAAME,EAAQN,EACXF,YACCd,IADDc,QAEDS,OAAOC,eAAeR,EAAmBH,EAAMb,EAAWa,CAAAA,CAAAA,EAE5DZ,IAAWqB,EAAMT,CAAAA,CAElB,CAwBA,EC/EW,SAAAY,EAAMC,EAAkBC,EAAAA,CACtC,OAAOT,EAAiB,CACtBlB,WAAaa,GAAAA,CACX,IAAMb,EAAa,CACjB4B,KAAAA,CAAAA,IAAAA,EAAAA,EACE,OAAOC,GAAAV,EAAAV,KAAKqB,cAAU,MAAAX,IAAVW,OAAUX,OAAAA,EAAEY,cAAcL,CAAAA,KAAa,MAAAG,IAAbH,OAAaG,EAAA,IACpD,EACDG,WAAAA,GACAC,aAAAA,EAAc,EAEhB,GAAIN,EAAO,CACT,IAAMvB,EAAsB,OAATS,GAAS,SAAWR,OAAAA,EAAW,KAAKQ,EACvDb,EAAW4B,IAAM,UAAA,CAAA,IAAAM,EAAAC,EAUf,OARG1B,KACCL,CAAAA,IAOJ,SAJGK,KACCL,CAAAA,GACEyB,GAAeK,EAAfzB,KAAKqB,cAAU,MAAAX,IAAVW,OAAUX,OAAAA,EAAEY,cAAcL,CAAAA,KAAS,MAAAG,IAATH,OAASG,EAAI,MAE1CpB,KACNL,CAAAA,CAEJ,EAEF,OAAOJ,CAAU,CAAA,CAAA,CAGvB,OC/CMoC,KACJjB,EANsCkB,OAM/BC,mBAAe,MAAAnB,IAAfmB,OAAenB,OAAAA,EAAEoB,UAAUC,mBAAoB,KAClD,CAACC,EAAuBC,IACtBD,EAAKD,iBAAiBE,CAAAA,EACxB,CAACD,EAAuBC,IACtBD,EACGE,cAAcD,CAAAA,EACdE,OACEC,GAA0BA,EAAKC,WAAaC,KAAKC,YAAAA,EChC9D,IAAAC,EAAA,CACE,KAAQ,8BACR,QAAW,QACX,YAAe,4CACf,WAAc,oDACd,SAAY,gCACZ,KAAQ,uDACR,OAAU,yCACV,QAAW,MACX,KAAQ,2BACR,OAAU,4BACV,MAAS,6BACT,MAAS,CACP,MACF,EACA,SAAY,CACV,YACA,YACA,gBACA,YACA,cACA,QACF,EACA,QAAW,CACT,MAAS,OACT,eAAgB,2BAChB,IAAO,eACP,KAAQ,WACR,WAAY,eACZ,KAAQ,0BACR,aAAc,cAChB,EACA,aAAgB,CACd,IAAO,QACT,EACA,gBAAmB,CACjB,oBAAqB,cACrB,wBAAyB,SACzB,WAAY,SACZ,QAAW,WACX,cAAe,SACf,iBAAkB,SAClB,aAAc,UACd,OAAU,UACV,KAAQ,SACR,WAAc,SACd,KAAQ,QACV,EACA,cAAiB,CACf,OAAU,QACZ,EACA,aAAgB,CACd,MACF,CACF,EC1BA,IAAMC,EAAe,mBAOd,IAAMC,EAAN,cAA8BC,CAAW,CAEvC,aAAe,GAMZ,UAMH,SAAqBC,EAAS,OAM9B,SAAW,GAMX,WAAsB,cAMtB,SAAW,GAMX,UAAY,EAMZ,MAAQ,GAMR,KAMA,SAAW,MAMX,MAAQ,EAMR,IAGA,aAAe,EAMf,kBAAoC,KAGpC,MAAkB,GAMlB,cAGC,QAAkB,EAElB,uBAEA,IAEA,MAEA,UAA2B,MAE3B,sBAGA,uBAAyB,GAEzB,eAAiB,GAEjB,qBAAuB,GAEvB,gBAAkB,GAElB,2BAA8C,CAAC,EAQ/C,WAAWC,EAAgC,CACjD,IAAMC,EAAS,SAASD,EAAM,EAAE,EAEhC,OAAI,OAAO,UAAUC,CAAM,GAAKA,EAAS,GACvC,KAAK,MAAQA,EAENA,GACE,OAAOD,GAAS,UAAY,CAAC,OAAQ,OAAO,EAAE,SAASA,CAAI,GACpE,KAAK,MAAQA,IAAS,OAEf,KAAK,QAEZE,EAAW,8CAA8C,EAGpD,GACT,CAKQ,kBAAkBC,EAAoB,CAC5C,IAAMC,EAASD,EAAM,cAErB,GAAI,CACF,IAAME,EAAQ,SAASD,EAAO,MAAO,EAAE,EAEvC,GAAI,CAAC,KAAK,uBACR,OAGF,IAAME,EAAiBD,EAAQ,IAAO,KAAK,uBAAuB,YAElE,KAAK,KAAKC,CAAK,CACjB,MAAE,CACA,MAAMR,EAAY,+BAA+B,CACnD,CACF,CAEQ,gBAAuB,CAC7B,IAAMS,EAAe,KAAK,uBAE1B,GAAIA,IAAiB,OAAW,CAC9BL,EAAW,sDAAuD,4BAA4B,EAE9F,OAIF,KAAK,sBAAwBK,EAAa,MAAM,UAC9C,CAACC,EAAmCC,IAAoC,CACtE,KAAK,QAAUD,EAAY,OAE3B,KAAK,cAAc,EAEfC,EAAU,eAAiBD,EAAY,cACzC,KAAK,cAAc,IAAI,YAAYA,EAAY,YAAY,CAAC,EAG9D,KAAK,cACH,IAAI,YAAYE,EAAa,MAAO,CAClC,OAAQ,CACN,MAAOF,EAAY,MACnB,OAAQA,EAAY,MACtB,CACF,CAAC,CACH,EAEA,KAAK,cACH,IAAI,YAAYE,EAAa,iBAAkB,CAC7C,OAAQ,CACN,qBAAsBF,EAAY,oBACpC,CACF,CAAC,CACH,CACF,CACF,EAGAD,EAAa,iBAAiB,WAAY,IAAM,CAC9C,KAAK,cAAc,IAAI,YAAYG,EAAa,QAAQ,CAAC,CAC3D,CAAC,EAEDH,EAAa,iBAAiB,eAAgB,IAAM,CAClD,KAAK,cAAc,IAAI,YAAYG,EAAa,YAAY,CAAC,CAC/D,CAAC,EAGDH,EAAa,iBAAiB,YAAa,IAAM,CAC/C,IAAMI,EAAW,KAAK,YAAY,EAE9BA,GAAYA,EAAS,SACvB,KAAK,2BAA6BA,EAAS,OAAO,OAAQC,GACxDA,EAAM,WAAW,SAAS,KAAK,sBAAsB,GAAK,EAAE,CAC9D,GAGF,KAAK,cAAc,IAAI,YAAYF,EAAa,KAAK,CAAC,CACxD,CAAC,EAGDH,EAAa,iBAAiB,aAAc,IAAM,CAChD,KAAK,cAAc,IAAI,YAAYG,EAAa,SAAS,CAAC,CAC5D,CAAC,EAGDH,EAAa,iBAAiB,cAAe,IAAM,CACjD,KAAK,cAAc,IAAI,YAAYG,EAAa,QAAQ,CAAC,CAC3D,CAAC,EAGG,QACF,OAAO,iBAAiB,QAAUP,GAAU,KAAK,kBAAkBA,CAAK,CAAC,CAE7E,CAKA,MAAa,KACXU,EACAC,EACAC,EACe,CACf,GAAI,CAAC,KAAK,WACR,OAMF,KAAK,uBAAyB,IAAIC,EAAsBH,EAAK,KAAK,UAA6B,CAC7F,iBAAkBC,GAA4B,CAC5C,UAAW,UACX,YAAa,GACb,gBAAiB,GACjB,kBAAmB,EACrB,EACA,MAAO,KAAK,aAAa,OAAO,EAAI,KAAK,MAAQ,OACjD,SAAU,KAAK,aAAa,UAAU,EAAI,KAAK,UAAY,OAC3D,KAAM,KAAK,aAAa,MAAM,EAAI,KAAK,MAAQ,OAC/C,UAAW,KAAK,aAAa,WAAW,EAAK,KAAK,YAAc,EAAI,EAAI,GAAM,OAC9E,MAAO,KAAK,aAAa,OAAO,EAAI,KAAK,MAAQ,OACjD,aAAc,KAAK,aAAa,cAAc,EAAI,OAAO,KAAK,YAAY,EAAI,OAC9E,SAAU,KAAK,aAAa,UAAU,EAAI,KAAK,SAAW,OAC1D,SAAU,KAAK,aAAa,UAAU,EAAI,KAAK,SAAW,OAC1D,kBAAmB,KAAK,aAAa,mBAAmB,EAAI,KAAK,kBAAoB,OACrF,aAAc,KAAK,aAAa,cAAc,EAAI,KAAK,aAAe,OACtE,MAAO,KAAK,MACZ,cAAe,KAAK,aAAa,eAAe,EAAI,KAAK,cAAgB,MAC3E,CAAC,EAED,MAAM,KAAK,uBAAuB,KAAKC,CAAe,EAEtD,KAAK,uBAAyB,KAAK,eAAe,EAAI,EAEtD,IAAMJ,EAAW,KAAK,YAAY,EAE9BA,GAAYA,EAAS,SACvB,KAAK,2BAA6BA,EAAS,OAAO,OAAQC,GACxDA,EAAM,WAAW,SAAS,KAAK,sBAAsB,GAAK,EAAE,CAC9D,GAMF,KAAK,eAAe,CACtB,CAKO,uBAA4C,CACjD,OAAO,KAAK,wBAAwB,kBACtC,CAKO,gBAAyB,CAC9B,OAAK,KAAK,wBAEH,KAAK,uBAAuB,YAAY,GAAG,WAAW,QAAU,CACzE,CAKO,YAAuB,CAC5B,OAAK,KAAK,uBAEO,KAAK,uBAAuB,YAAY,GAExC,WAAW,IAAKK,GAAcA,EAAU,EAAE,GAAK,CAAC,EAJxB,CAAC,CAK5C,CAKO,kBAA2B,CAChC,MAAI,CAAC,KAAK,wBAA0B,CAAC,KAAK,uBAAuB,mBAA2B,GAErF,KAAK,uBAAuB,kBACrC,CAKO,UAAiC,CACtC,OAAK,KAAK,uBAEH,KAAK,uBAAuB,SAAS,EAFHC,CAG3C,CAMO,aAAoC,CACzC,OAAO,KAAK,wBAAwB,YAAY,CAClD,CAKO,WAAuC,CAC5C,OAAO,KAAK,wBAAwB,qBAAqB,CAC3D,CAKO,aAAwB,CAC7B,MAAO,CACL,iBAAkBF,EAAsB,oBAAoB,EAC5D,uBAAwB,GAAGrB,EAAI,SACjC,CACF,CAKO,SACLwB,EACM,CACN,KAAK,wBAAwB,SAASA,CAAU,CAClD,CAKO,KACLA,EACM,CACN,KAAK,wBAAwB,KAAKA,CAAU,CAC9C,CAKO,OAAc,CACnB,KAAK,wBAAwB,MAAM,CACrC,CAEO,KACLC,EACAD,EACM,CACD,KAAK,wBAIV,KAAK,uBAAuB,KAAKC,EAAiBD,CAAU,CAC9D,CAKO,OAAc,CACd,KAAK,wBAEV,KAAK,uBAAuB,MAAM,CACpC,CAKO,MAAa,CACb,KAAK,wBAEV,KAAK,uBAAuB,KAAK,CACnC,CAWO,WAAWE,EAAmD,CAC9D,KAAK,wBAEV,KAAK,uBAAuB,WAAWA,CAAiB,CAC1D,CAMO,gBAAuB,CACvB,KAAK,wBAEV,KAAK,uBAAuB,eAAe,CAC7C,CAUO,aAAaC,EAIX,CACF,KAAK,wBAEV,KAAK,uBAAuB,aAAaA,CAAa,CACxD,CAMO,kBAAyB,CACzB,KAAK,wBAEV,KAAK,uBAAuB,iBAAiB,CAC/C,CAKO,KAAKjB,EAA8B,CACnC,KAAK,wBAEV,KAAK,uBAAuB,KAAKA,CAAK,CACxC,CAOO,SAASkB,EAAW,GAAc,CACvC,GAAI,CAAC,KAAK,WAAY,MAAO,GAG7B,IAAMC,EAAa,KAAK,WAAW,cAAc,gBAAgB,EAC3DC,EAAO,IAAI,cAAc,EAAE,kBAAkBD,CAAU,EAG7D,GAAID,EAAU,CACZ,IAAM/E,EAAU,SAAS,cAAc,GAAG,EAE1CA,EAAQ,KAAO,oCAAoC,mBAAmBiF,CAAI,IAC1EjF,EAAQ,SAAW,YAAY,KAAK,cACpC,SAAS,KAAK,YAAYA,CAAO,EAEjCA,EAAQ,MAAM,EAEd,SAAS,KAAK,YAAYA,CAAO,EAGnC,OAAOiF,CACT,CAKO,SAASb,EAAqB,CACnC,KAAK,wBAAwB,gBAAgBA,CAAK,CACpD,CAKO,QAAmB,CACxB,OAAK,KAAK,uBAEO,KAAK,uBAAuB,YAAY,GAExC,QAAQ,IAAKA,GAAUA,EAAM,EAAE,GAAK,CAAC,EAJb,CAAC,CAK5C,CAKO,iBAA0B,CAC/B,OAAK,KAAK,uBAEH,KAAK,uBAAuB,aAFM,EAG3C,CAOQ,SAAgB,CACjB,KAAK,wBAEV,KAAK,uBAAuB,OAAO,CACrC,CAOO,SAASP,EAAQ,EAAS,CAC1B,KAAK,wBAEV,KAAK,uBAAuB,SAASA,CAAK,CAC5C,CAOO,aAAaA,EAAqB,CAClC,KAAK,wBAEV,KAAK,uBAAuB,aAAaA,CAAK,CAChD,CAOO,WAAWA,EAA+B,CAC1C,KAAK,wBAEV,KAAK,uBAAuB,QAAQA,CAAK,CAC3C,CAEO,WAA8B,CACnC,OAAK,KAAK,uBAEH,KAAK,uBAAuB,KAFM,EAG3C,CAKO,YAAmB,CACnB,KAAK,wBAEV,KAAK,uBAAuB,WAAW,CACzC,CAKO,eAAsB,CACtB,KAAK,wBAEV,KAAK,uBAAuB,WAAW,CACzC,CAMO,YAAYqB,EAAsB,CAClC,KAAK,wBAEV,KAAK,uBAAuB,QAAQA,CAAI,CAC1C,CAOO,qBAAqBC,EAAuB,CAC5C,KAAK,wBAEV,KAAK,uBAAuB,qBAAqBA,CAAO,CAC1D,CAKO,qBAA4B,CAC5B,KAAK,wBAEV,KAAK,uBAAuB,oBAAoB,CAClD,CAKO,uBAAuBC,EAAyE,CACrG,KAAK,wBAAwB,uBAAuBA,CAAY,CAClE,CAKA,WAAkB,QAAoB,CACpC,OAAOC,CACT,CAKA,MAAyB,cAA8B,CACrD,KAAK,UAAY,KAAK,YAAY,cAAc,YAAY,EAGxD,yBAA0B,SAC5B,KAAK,IAAM,IAAI,qBAAsBC,GAAyC,CACxEA,EAAQ,CAAC,IAAM,QAAaA,EAAQ,CAAC,EAAE,eACrC,KAAK,wBAAwB,eAAiBC,EAAY,QAC5D,KAAK,KAAK,EAEH,KAAK,wBAAwB,eAAiBA,EAAY,SACnE,KAAK,QAAQ,CAEjB,CAAC,EAED,KAAK,IAAI,QAAQ,KAAK,SAAS,GAK7B,KAAK,KACP,KAAK,WAAW,KAAK,IAAI,EAChB,KAAK,aAAa,MAAM,GACjC,KAAK,WAAW,MAAM,EAIpB,KAAK,WAAa,MAAO,KAAK,UAAY,MACrC,KAAK,WAAa,SAAU,KAAK,UAAY,SAC7C,KAAK,WAAa,SAAQ,KAAK,UAAY,QAGhD,KAAK,KACP,MAAM,KAAK,KAAK,KAAK,GAAG,CAE5B,CAKgB,sBAA6B,CAEvC,KAAK,MACP,KAAK,IAAI,WAAW,EACpB,KAAK,IAAM,QAIb,KAAK,wBAAwB,QAAQ,EAErC,KAAK,wBAAwB,EAGzB,QACF,OAAO,oBAAoB,QAAU5B,GAAU,KAAK,kBAAkBA,CAAK,CAAC,CAEhF,CAEQ,kBAAkBA,EAAyB,CAS7C,CARWA,EAAM,aAAa,EAAE,KAAM3D,GACpCA,aAAmB,YACdA,EAAQ,UAAU,SAAS,SAAS,GAAKA,EAAQ,KAAO,2BAG1D,EACR,GAEc,KAAK,iBAClB,KAAK,eAAiB,GACtB,KAAK,cAAc,EAEvB,CAEU,gBAA6C,CACrD,IAAMwF,EAAqB,KAAK,wBAAwB,eAAiBD,EAAY,QAC/EE,EAAoB,KAAK,wBAAwB,eAAiBF,EAAY,OAEpF,OAAOG;AAAA;AAAA,UAED,KAAK,uBACHA;AAAA,+BACmB,IAAY,KAAK,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAW7CA;AAAA;AAAA;AAAA,mBAGO,IAAY,CACnB,KAAK,WAAW,CAClB;AAAA,kBACQF,GAAaC,EACjB,UAAU,KAAK,uBAAyB,qBAAuB,sBAC/D,GAAG,KAAK,uBAAyB,qBAAuB;AAAA;AAAA;AAAA,YAG1DD,EACEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAYAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UASJ,KAAK,uBACHA;AAAA,+BACmB,IAAY,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAWzCA;AAAA;AAAA;AAAA,0BAGc,KAAK,wBAAwB,YAAc,GAAK,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKnE,KAAK;AAAA,mBACJ/B,GAAuB,KAAK,kBAAkBA,CAAK;AAAA,uBAChD,IAAY,CACvB,KAAK,QAAQ,CACf;AAAA,qBACW,IAAY,CACrB,KAAK,wBAAwB,SAAS,CACxC;AAAA;AAAA;AAAA;AAAA,0BAIgB,KAAK;AAAA;AAAA,kBAEb,aAAa,KAAK;AAAA;AAAA;AAAA;AAAA,mBAIjB,IAAY,KAAK,cAAc;AAAA,kBAChC,KAAK,wBAAwB,KAAO,0BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAcxE,KAAK,uBACH+B;AAAA;AAAA;AAAA,yBAGa,IAAY,CACnB,KAAK,eAAiB,CAAC,KAAK,eAC5B,KAAK,cAAc,CACrB;AAAA;AAAA;AAAA,wBAGQ,qBACN,KAAK,eAAiB,gDAAkD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAmB9EA;AAAA;AAAA,QAEJ,KAAK,eACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAMyB,KAAK,OAAO,EAAE,OAAS,EAAI,OAAS;AAAA;AAAA,gBAEvD,CAAC,KAAK,sBAAwB,CAAC,KAAK,gBAClCA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAKa,IAAY,CACnB,KAAK,qBAAuB,CAAC,KAAK,qBAClC,KAAK,cAAc,CACrB;AAAA,iCACYpF,GAA6B,EACnCA,EAAI,OAAS,SAAWA,EAAI,OAAS,WACvC,KAAK,qBAAuB,CAAC,KAAK,qBAClC,KAAK,cAAc,EAEvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAeJoF;AAAA,gBACF,KAAK,OAAO,EAAE,OAAS,GAAK,CAAC,KAAK,iBAAmB,CAAC,KAAK,qBACzDA;AAAA;AAAA;AAAA,6BAGW,IAAY,CACnB,KAAK,gBAAkB,CAAC,KAAK,gBAC7B,KAAK,cAAc,CACrB;AAAA,+BACYpF,GAA6B,EACnCA,EAAI,OAAS,SAAWA,EAAI,OAAS,WACvC,KAAK,gBAAkB,CAAC,KAAK,gBAC7B,KAAK,cAAc,EAGvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAcF;AAAA,gBACF,KAAK,qBACHoF;AAAA;AAAA;AAAA,+BAGa,IAAY,CACnB,KAAK,qBAAuB,CAAC,KAAK,qBAClC,KAAK,cAAc,CACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAiBI,KAAK,WAAW,EAAE,IAAKC,GAChBD;AAAA;AAAA;AAAA;AAAA,6CAIY,GAAGC;AAAA,yCACP,IAAY,CACnB,KAAK,qBAAuB,CAAC,KAAK,qBAClC,KAAK,eAAiB,CAAC,KAAK,eAC5B,KAAK,KAAKA,EAAgBC,IAAU,CAAE,GAAGA,EAAM,aAAc,EAAG,EAAE,EAClE,KAAK,cAAc,CACrB;AAAA,2CACYtF,GAA6B,EACnCA,EAAI,OAAS,SAAWA,EAAI,OAAS,WACvC,KAAK,qBAAuB,CAAC,KAAK,qBAClC,KAAK,eAAiB,CAAC,KAAK,eAC5B,KAAK,KAAKqF,EAAgBC,IAAU,CAAE,GAAGA,EAAM,aAAc,EAAG,EAAE,EAClE,KAAK,cAAc,EAEvB;AAAA;AAAA;AAAA,oCAGI,KAAK,iBAAiB,IAAMD,EAC1BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAgBAA;AAAA;AAAA,uCAECC;AAAA;AAAA;AAAA,2BAId;AAAA;AAAA,6BAGPD;AAAA,gBACF,KAAK,gBACHA;AAAA;AAAA;AAAA;AAAA,iCAIe,IAAY,CACnB,KAAK,gBAAkB,CAAC,KAAK,gBAC7B,KAAK,cAAc,CACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAmBE,KAAK,wBAAwB,eAAiB,GAC5CA,IACAA;AAAA;AAAA;AAAA,yCAGa,IAAY,CACnB,KAAK,SAAS,EAAE,EAChB,KAAK,cAAc,CACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAUN,KAAK,2BAA2B,IAAKG,GAC9BH;AAAA;AAAA;AAAA;AAAA,8CAIaG,EAAU;AAAA,yCACf,IAAY,CACnB,KAAK,SAASA,EAAU,EAAE,CAC5B;AAAA,2CACYvF,GAA6B,EACnCA,EAAI,OAAS,SAAWA,EAAI,OAAS,UACvC,KAAK,SAASuF,EAAU,EAAE,CAE9B;AAAA;AAAA;AAAA,oCAGI,KAAK,gBAAgB,IAAMA,EAAU,GACnCH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAgBAA;AAAA;AAAA,uCAECG,EAAU;AAAA;AAAA;AAAA,2BAIxB;AAAA;AAAA,4BAGPH;AAAA;AAAA,YAGRA;AAAA,KAER,CAEgB,QAAgC,CAC9C,IAAMI,EAAoB,KAAK,SAAW,gBAAkB,OACtDC,EAAyB,KAAK,SAAW,qBAAuB,YAEtE,OAAOL;AAAA,4CACiCI;AAAA,oCACRC,uBAAoC,KAAK;AAAA,YACjE,KAAK,wBAAwB,eAAiBR,EAAY,MACxDG,iCACA;AAAA;AAAA,UAEJ,KAAK,SAAW,KAAK,eAAe,EAAI;AAAA;AAAA,KAGhD,CACF,EA/kCSM,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GADf5C,EAEJ,4BAMG2C,EAAA,CADTE,EAAM,YAAY,GAPR7C,EAQD,yBAMH2C,EAAA,CADNC,EAAS,GAbC5C,EAcJ,wBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,OAAQ,CAAC,GAnBhB5C,EAoBJ,wBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GAzBf5C,EA0BJ,0BAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,OAAQ,CAAC,GA/BhB5C,EAgCJ,wBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GArCf5C,EAsCJ,yBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,OAAQ,CAAC,GA3ChB5C,EA4CJ,qBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GAjDf5C,EAkDJ,oBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GAvDf5C,EAwDJ,wBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GA7Df5C,EA8DJ,qBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GAnEf5C,EAoEJ,mBAGA2C,EAAA,CADNC,EAAS,GAtEC5C,EAuEJ,4BAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GA5Ef5C,EA6EJ,iCAGA2C,EAAA,CADNC,EAAS,CAAE,KAAM,OAAQ,CAAC,GA/EhB5C,EAgFJ,qBAMA2C,EAAA,CADNC,EAAS,CAAE,KAAM,MAAO,CAAC,GArFf5C,EAsFJ,6BAGC2C,EAAA,CADP3D,EAAM,GAxFIgB,EAyFH,uBA0/BL,eAAe,IAAID,CAAY,GAClC,eAAe,OAAOA,EAAcC,CAAe","sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport {PropertyDeclaration, ReactiveElement} from '../reactive-element.js';\nimport {ClassElement} from './base.js';\n\nconst standardProperty = (\n  options: PropertyDeclaration,\n  element: ClassElement\n) => {\n  // When decorating an accessor, pass it through and add property metadata.\n  // Note, the `hasOwnProperty` check in `createProperty` ensures we don't\n  // stomp over the user's accessor.\n  if (\n    element.kind === 'method' &&\n    element.descriptor &&\n    !('value' in element.descriptor)\n  ) {\n    return {\n      ...element,\n      finisher(clazz: typeof ReactiveElement) {\n        clazz.createProperty(element.key, options);\n      },\n    };\n  } else {\n    // createProperty() takes care of defining the property, but we still\n    // must return some kind of descriptor, so return a descriptor for an\n    // unused prototype field. The finisher calls createProperty().\n    return {\n      kind: 'field',\n      key: Symbol(),\n      placement: 'own',\n      descriptor: {},\n      // store the original key so subsequent decorators have access to it.\n      originalKey: element.key,\n      // When @babel/plugin-proposal-decorators implements initializers,\n      // do this instead of the initializer below. See:\n      // https://github.com/babel/babel/issues/9260 extras: [\n      //   {\n      //     kind: 'initializer',\n      //     placement: 'own',\n      //     initializer: descriptor.initializer,\n      //   }\n      // ],\n      initializer(this: {[key: string]: unknown}) {\n        if (typeof element.initializer === 'function') {\n          this[element.key as string] = element.initializer.call(this);\n        }\n      },\n      finisher(clazz: typeof ReactiveElement) {\n        clazz.createProperty(element.key, options);\n      },\n    };\n  }\n};\n\nconst legacyProperty = (\n  options: PropertyDeclaration,\n  proto: Object,\n  name: PropertyKey\n) => {\n  (proto.constructor as typeof ReactiveElement).createProperty(name, options);\n};\n\n/**\n * A property decorator which creates a reactive property that reflects a\n * corresponding attribute value. When a decorated property is set\n * the element will update and render. A {@linkcode PropertyDeclaration} may\n * optionally be supplied to configure property features.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the {@linkcode state} decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the {@linkcode state} decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * ```ts\n * class MyElement {\n *   @property({ type: Boolean })\n *   clicked = false;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function property(options?: PropertyDeclaration) {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  return (protoOrDescriptor: Object | ClassElement, name?: PropertyKey): any =>\n    name !== undefined\n      ? legacyProperty(options!, protoOrDescriptor as Object, name)\n      : standardProperty(options!, protoOrDescriptor as ClassElement);\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {property} from './property.js';\n\nexport interface InternalPropertyDeclaration<Type = unknown> {\n  /**\n   * A function that indicates if a property should be considered changed when\n   * it is set. The function should take the `newValue` and `oldValue` and\n   * return `true` if an update should be requested.\n   */\n  hasChanged?(value: Type, oldValue: Type): boolean;\n}\n\n/**\n * Declares a private or protected reactive property that still triggers\n * updates to the element when it changes. It does not reflect from the\n * corresponding attribute.\n *\n * Properties declared this way must not be used from HTML or HTML templating\n * systems, they're solely for properties internal to the element. These\n * properties may be renamed by optimization tools like closure compiler.\n * @category Decorator\n */\nexport function state(options?: InternalPropertyDeclaration) {\n  return property({\n    ...options,\n    state: true,\n  });\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ReactiveElement} from '../reactive-element.js';\n\n/**\n * Generates a public interface type that removes private and protected fields.\n * This allows accepting otherwise compatible versions of the type (e.g. from\n * multiple copies of the same package in `node_modules`).\n */\nexport type Interface<T> = {\n  [K in keyof T]: T[K];\n};\n\nexport type Constructor<T> = {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  new (...args: any[]): T;\n};\n\n// From the TC39 Decorators proposal\nexport interface ClassDescriptor {\n  kind: 'class';\n  elements: ClassElement[];\n  finisher?: <T>(clazz: Constructor<T>) => void | Constructor<T>;\n}\n\n// From the TC39 Decorators proposal\nexport interface ClassElement {\n  kind: 'field' | 'method';\n  key: PropertyKey;\n  placement: 'static' | 'prototype' | 'own';\n  initializer?: Function;\n  extras?: ClassElement[];\n  finisher?: <T>(clazz: Constructor<T>) => void | Constructor<T>;\n  descriptor?: PropertyDescriptor;\n}\n\nexport const legacyPrototypeMethod = (\n  descriptor: PropertyDescriptor,\n  proto: Object,\n  name: PropertyKey\n) => {\n  Object.defineProperty(proto, name, descriptor);\n};\n\nexport const standardPrototypeMethod = (\n  descriptor: PropertyDescriptor,\n  element: ClassElement\n) => ({\n  kind: 'method',\n  placement: 'prototype',\n  key: element.key,\n  descriptor,\n});\n\n/**\n * Helper for decorating a property that is compatible with both TypeScript\n * and Babel decorators. The optional `finisher` can be used to perform work on\n * the class. The optional `descriptor` should return a PropertyDescriptor\n * to install for the given property.\n *\n * @param finisher {function} Optional finisher method; receives the element\n * constructor and property key as arguments and has no return value.\n * @param descriptor {function} Optional descriptor method; receives the\n * property key as an argument and returns a property descriptor to define for\n * the given property.\n * @returns {ClassElement|void}\n */\nexport const decorateProperty =\n  ({\n    finisher,\n    descriptor,\n  }: {\n    finisher?:\n      | ((ctor: typeof ReactiveElement, property: PropertyKey) => void)\n      | null;\n    descriptor?: (property: PropertyKey) => PropertyDescriptor;\n  }) =>\n  (\n    protoOrDescriptor: Interface<ReactiveElement> | ClassElement,\n    name?: PropertyKey\n    // Note TypeScript requires the return type to be `void|any`\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ): void | any => {\n    // TypeScript / Babel legacy mode\n    if (name !== undefined) {\n      const ctor = (protoOrDescriptor as ReactiveElement)\n        .constructor as typeof ReactiveElement;\n      if (descriptor !== undefined) {\n        Object.defineProperty(protoOrDescriptor, name, descriptor(name));\n      }\n      finisher?.(ctor, name!);\n      // Babel standard mode\n    } else {\n      // Note, the @property decorator saves `key` as `originalKey`\n      // so try to use it here.\n      const key =\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        (protoOrDescriptor as any).originalKey ??\n        (protoOrDescriptor as ClassElement).key;\n      const info: ClassElement =\n        descriptor != undefined\n          ? {\n              kind: 'method',\n              placement: 'prototype',\n              key,\n              descriptor: descriptor((protoOrDescriptor as ClassElement).key),\n            }\n          : {...(protoOrDescriptor as ClassElement), key};\n      if (finisher != undefined) {\n        info.finisher = function <ReactiveElement>(\n          ctor: Constructor<ReactiveElement>\n        ) {\n          finisher(ctor as unknown as typeof ReactiveElement, key);\n        };\n      }\n      return info;\n    }\n  };\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {ReactiveElement} from '../reactive-element.js';\nimport {decorateProperty} from './base.js';\n\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n * @param cache An optional boolean which when true performs the DOM query only\n *     once and caches the result.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n *   @query('#first')\n *   first: HTMLDivElement;\n *\n *   render() {\n *     return html`\n *       <div id=\"first\"></div>\n *       <div id=\"second\"></div>\n *     `;\n *   }\n * }\n * ```\n * @category Decorator\n */\nexport function query(selector: string, cache?: boolean) {\n  return decorateProperty({\n    descriptor: (name: PropertyKey) => {\n      const descriptor = {\n        get(this: ReactiveElement) {\n          return this.renderRoot?.querySelector(selector) ?? null;\n        },\n        enumerable: true,\n        configurable: true,\n      };\n      if (cache) {\n        const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n        descriptor.get = function (this: ReactiveElement) {\n          if (\n            (this as unknown as {[key: string]: Element | null})[\n              key as string\n            ] === undefined\n          ) {\n            (this as unknown as {[key: string]: Element | null})[\n              key as string\n            ] = this.renderRoot?.querySelector(selector) ?? null;\n          }\n          return (this as unknown as {[key: string]: Element | null})[\n            key as string\n          ];\n        };\n      }\n      return descriptor;\n    },\n  });\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {decorateProperty} from './base.js';\n\nimport type {ReactiveElement} from '../reactive-element.js';\nimport type {QueryAssignedNodesOptions} from './query-assigned-nodes.js';\n\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n\n/**\n * A tiny module scoped polyfill for HTMLSlotElement.assignedElements.\n */\nconst slotAssignedElements =\n  global.HTMLSlotElement?.prototype.assignedElements != null\n    ? (slot: HTMLSlotElement, opts?: AssignedNodesOptions) =>\n        slot.assignedElements(opts)\n    : (slot: HTMLSlotElement, opts?: AssignedNodesOptions) =>\n        slot\n          .assignedNodes(opts)\n          .filter(\n            (node): node is Element => node.nodeType === Node.ELEMENT_NODE\n          );\n\n/**\n * Options for the {@linkcode queryAssignedElements} decorator. Extends the\n * options that can be passed into\n * [HTMLSlotElement.assignedElements](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n */\nexport interface QueryAssignedElementsOptions\n  extends QueryAssignedNodesOptions {\n  /**\n   * CSS selector used to filter the elements returned. For example, a selector\n   * of `\".item\"` will only include elements with the `item` class.\n   */\n  selector?: string;\n}\n\n/**\n * A property decorator that converts a class property into a getter that\n * returns the `assignedElements` of the given `slot`. Provides a declarative\n * way to use\n * [`HTMLSlotElement.assignedElements`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n *\n * Can be passed an optional {@linkcode QueryAssignedElementsOptions} object.\n *\n * Example usage:\n * ```ts\n * class MyElement {\n *   @queryAssignedElements({ slot: 'list' })\n *   listItems!: Array<HTMLElement>;\n *   @queryAssignedElements()\n *   unnamedSlotEls!: Array<HTMLElement>;\n *\n *   render() {\n *     return html`\n *       <slot name=\"list\"></slot>\n *       <slot></slot>\n *     `;\n *   }\n * }\n * ```\n *\n * Note, the type of this property should be annotated as `Array<HTMLElement>`.\n *\n * @category Decorator\n */\nexport function queryAssignedElements(options?: QueryAssignedElementsOptions) {\n  const {slot, selector} = options ?? {};\n  return decorateProperty({\n    descriptor: (_name: PropertyKey) => ({\n      get(this: ReactiveElement) {\n        const slotSelector = `slot${slot ? `[name=${slot}]` : ':not([name])'}`;\n        const slotEl =\n          this.renderRoot?.querySelector<HTMLSlotElement>(slotSelector);\n        const elements =\n          slotEl != null ? slotAssignedElements(slotEl, options) : [];\n        if (selector) {\n          return elements.filter((node) => node.matches(selector));\n        }\n        return elements;\n      },\n      enumerable: true,\n      configurable: true,\n    }),\n  });\n}\n","{\n  \"name\": \"@dotlottie/player-component\",\n  \"version\": \"2.5.1\",\n  \"description\": \"dotLottie animation player web component.\",\n  \"repository\": \"https://github.com/dotlottie/player-component.git\",\n  \"homepage\": \"https://dotlottie.com/players\",\n  \"bugs\": \"https://github.com/dotlottie/player-component/issues\",\n  \"author\": \"Jawish Hameed <jawish@lottiefiles.com>\",\n  \"license\": \"MIT\",\n  \"main\": \"dist/dotlottie-player.js\",\n  \"module\": \"dist/dotlottie-player.mjs\",\n  \"types\": \"dist/dotlottie-player.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"dotlottie\",\n    \"animation\",\n    \"web component\",\n    \"component\",\n    \"lit-element\",\n    \"player\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"cypress:open\": \"cypress open --component\",\n    \"dev\": \"tsup --watch\",\n    \"lint\": \"eslint .\",\n    \"lint:fix\": \"eslint --fix\",\n    \"test\": \"cypress run --component\",\n    \"type-check\": \"tsc --noEmit\"\n  },\n  \"dependencies\": {\n    \"lit\": \"^2.7.5\"\n  },\n  \"devDependencies\": {\n    \"@dotlottie/common\": \"workspace:^\",\n    \"@vitejs/plugin-legacy\": \"^4.1.0\",\n    \"axe-core\": \"^4.7.2\",\n    \"cypress\": \"^12.11.0\",\n    \"cypress-axe\": \"^1.4.0\",\n    \"cypress-ct-lit\": \"^0.3.2\",\n    \"lottie-web\": \"^5.12.2\",\n    \"terser\": \"^5.19.0\",\n    \"tsup\": \"^6.1.3\",\n    \"typescript\": \"^4.7.4\",\n    \"vite\": \"^4.3.9\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"browserslist\": [\n    \"> 3%\"\n  ]\n}\n","/**\n * Copyright 2023 Design Barn Inc.\n */\n\nimport type { RendererType, DotLottiePlayerState, PlaybackOptions, Manifest, ManifestTheme } from '@dotlottie/common';\nimport {\n  DotLottiePlayer as DotLottieCommonPlayer,\n  PlayerState,\n  PlayMode,\n  PlayerEvents,\n  logWarning,\n  createError,\n  DEFAULT_STATE,\n} from '@dotlottie/common';\nimport type { CSSResult, TemplateResult } from 'lit';\nimport { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport type { AnimationItem } from 'lottie-web';\n\nimport pkg from '../package.json';\n\nimport styles from './dotlottie-player.styles';\n\nexport interface Versions {\n  dotLottiePlayerVersion: string;\n  lottieWebVersion: string;\n}\n\nconst ELEMENT_NAME = 'dotlottie-player';\n\nexport { PlayMode, PlaybackOptions };\n\n/**\n * DotLottiePlayer web component class\n */\nexport class DotLottiePlayer extends LitElement {\n  @property({ type: String })\n  public defaultTheme = '';\n\n  /**\n   * Animation container.\n   */\n  @query('#animation')\n  protected container!: HTMLElement;\n\n  /**\n   * Play mode.\n   */\n  @property()\n  public playMode: PlayMode = PlayMode.Normal;\n\n  /**\n   * Autoplay animation on load.\n   */\n  @property({ type: Boolean })\n  public autoplay = false;\n\n  /**\n   * Background color.\n   */\n  @property({ type: String })\n  public background?: string = 'transparent';\n\n  /**\n   * Show controls.\n   */\n  @property({ type: Boolean })\n  public controls = false;\n\n  /**\n   * Direction of animation.\n   */\n  @property({ type: Number })\n  public direction = 1;\n\n  /**\n   * Whether to play on mouse hover\n   */\n  @property({ type: Boolean })\n  public hover = false;\n\n  /**\n   * Whether to loop animation.\n   */\n  @property({ type: String })\n  public loop?: string;\n\n  /**\n   * Renderer to use.\n   */\n  @property({ type: String })\n  public renderer = 'svg';\n\n  /**\n   * Animation speed.\n   */\n  @property({ type: Number })\n  public speed = 1;\n\n  /**\n   * Bodymovin JSON data or URL to JSON.\n   */\n  @property({ type: String })\n  public src?: string;\n\n  @property()\n  public intermission = 0;\n\n  /**\n   * Animation id as string or index to play on load.\n   */\n  @property({ type: String })\n  public activeAnimationId?: string | null = null;\n\n  @property({ type: Boolean })\n  public light?: boolean = false;\n\n  /**\n   * Interactivity state id.\n   */\n  @property({ type: String })\n  public activeStateId?: string | undefined;\n\n  @state()\n  private _seeker: number = 0;\n\n  private _dotLottieCommonPlayer: DotLottieCommonPlayer | undefined;\n\n  private _io?: IntersectionObserver;\n\n  private _loop?: boolean | number;\n\n  private _renderer?: RendererType = 'svg';\n\n  private _unsubscribeListeners?: () => void;\n\n  // Controls state\n  private _hasMultipleAnimations = false;\n\n  private _popoverIsOpen = false;\n\n  private _animationsTabIsOpen = false;\n\n  private _styleTabIsOpen = false;\n\n  private _themesForCurrentAnimation: ManifestTheme[] = [];\n\n  /**\n   * Get number of loops or boolean value of loop.\n   *\n   * @param loop - either a string representing a boolean or a number of loops to play\n   * @returns boolean - if loop was activated or not\n   */\n  private _parseLoop(loop: string): boolean | number {\n    const loopNb = parseInt(loop, 10);\n\n    if (Number.isInteger(loopNb) && loopNb > 0) {\n      this._loop = loopNb;\n\n      return loopNb;\n    } else if (typeof loop === 'string' && ['true', 'false'].includes(loop)) {\n      this._loop = loop === 'true';\n\n      return this._loop;\n    } else {\n      logWarning('loop must be a positive integer or a boolean');\n    }\n\n    return false;\n  }\n\n  /**\n   * Handles click and drag actions on the progress track.\n   */\n  private _handleSeekChange(event: Event): void {\n    const target = event.currentTarget as HTMLInputElement;\n\n    try {\n      const value = parseInt(target.value, 10);\n\n      if (!this._dotLottieCommonPlayer) {\n        return;\n      }\n\n      const frame: number = (value / 100) * this._dotLottieCommonPlayer.totalFrames;\n\n      this.seek(frame);\n    } catch (error) {\n      throw createError('Error while seeking animation');\n    }\n  }\n\n  private _initListeners(): void {\n    const commonPlayer = this._dotLottieCommonPlayer;\n\n    if (commonPlayer === undefined) {\n      logWarning('player not initialized - cannot add event listeners', 'dotlottie-player-component');\n\n      return;\n    }\n\n    // Calculate and save the current progress of the animation\n    this._unsubscribeListeners = commonPlayer.state.subscribe(\n      (playerState: DotLottiePlayerState, prevState: DotLottiePlayerState) => {\n        this._seeker = playerState.seeker;\n\n        this.requestUpdate();\n\n        if (prevState.currentState !== playerState.currentState) {\n          this.dispatchEvent(new CustomEvent(playerState.currentState));\n        }\n\n        this.dispatchEvent(\n          new CustomEvent(PlayerEvents.Frame, {\n            detail: {\n              frame: playerState.frame,\n              seeker: playerState.seeker,\n            },\n          }),\n        );\n\n        this.dispatchEvent(\n          new CustomEvent(PlayerEvents.VisibilityChange, {\n            detail: {\n              visibilityPercentage: playerState.visibilityPercentage,\n            },\n          }),\n        );\n      },\n    );\n\n    // Handle animation play complete\n    commonPlayer.addEventListener('complete', () => {\n      this.dispatchEvent(new CustomEvent(PlayerEvents.Complete));\n    });\n\n    commonPlayer.addEventListener('loopComplete', () => {\n      this.dispatchEvent(new CustomEvent(PlayerEvents.LoopComplete));\n    });\n\n    // Handle lottie-web ready event\n    commonPlayer.addEventListener('DOMLoaded', () => {\n      const manifest = this.getManifest();\n\n      if (manifest && manifest.themes) {\n        this._themesForCurrentAnimation = manifest.themes.filter((theme) =>\n          theme.animations.includes(this.getCurrentAnimationId() || ''),\n        );\n      }\n\n      this.dispatchEvent(new CustomEvent(PlayerEvents.Ready));\n    });\n\n    // Handle animation data load complete\n    commonPlayer.addEventListener('data_ready', () => {\n      this.dispatchEvent(new CustomEvent(PlayerEvents.DataReady));\n    });\n\n    // Set error state when animation load fail event triggers\n    commonPlayer.addEventListener('data_failed', () => {\n      this.dispatchEvent(new CustomEvent(PlayerEvents.DataFail));\n    });\n\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    if (window) {\n      window.addEventListener('click', (event) => this._clickOutListener(event));\n    }\n  }\n\n  /**\n   * Configure and initialize lottie-web player instance.\n   */\n  public async load(\n    src: string | AnimationItem,\n    overrideRendererSettings?: Record<string, unknown>,\n    playbackOptions?: PlaybackOptions,\n  ): Promise<void> {\n    if (!this.shadowRoot) {\n      return;\n    }\n\n    /**\n     * User's can call the load method - only do new initialization inside firstConnected()\n     */\n    this._dotLottieCommonPlayer = new DotLottieCommonPlayer(src, this.container as HTMLDivElement, {\n      rendererSettings: overrideRendererSettings ?? {\n        scaleMode: 'noScale',\n        clearCanvas: true,\n        progressiveLoad: true,\n        hideOnTransparent: true,\n      },\n      hover: this.hasAttribute('hover') ? this.hover : undefined,\n      renderer: this.hasAttribute('renderer') ? this._renderer : undefined,\n      loop: this.hasAttribute('loop') ? this._loop : undefined,\n      direction: this.hasAttribute('direction') ? (this.direction === 1 ? 1 : -1) : undefined,\n      speed: this.hasAttribute('speed') ? this.speed : undefined,\n      intermission: this.hasAttribute('intermission') ? Number(this.intermission) : undefined,\n      playMode: this.hasAttribute('playMode') ? this.playMode : undefined,\n      autoplay: this.hasAttribute('autoplay') ? this.autoplay : undefined,\n      activeAnimationId: this.hasAttribute('activeAnimationId') ? this.activeAnimationId : undefined,\n      defaultTheme: this.hasAttribute('defaultTheme') ? this.defaultTheme : undefined,\n      light: this.light,\n      activeStateId: this.hasAttribute('activeStateId') ? this.activeStateId : undefined,\n    });\n\n    await this._dotLottieCommonPlayer.load(playbackOptions);\n\n    this._hasMultipleAnimations = this.animationCount() > 1;\n\n    const manifest = this.getManifest();\n\n    if (manifest && manifest.themes) {\n      this._themesForCurrentAnimation = manifest.themes.filter((theme) =>\n        theme.animations.includes(this.getCurrentAnimationId() || ''),\n      );\n    }\n\n    /**\n     * Init done\n     */\n    this._initListeners();\n  }\n\n  /**\n   * @returns Current animation's id\n   */\n  public getCurrentAnimationId(): string | undefined {\n    return this._dotLottieCommonPlayer?.currentAnimationId;\n  }\n\n  /**\n   * @returns The current number of animations\n   */\n  public animationCount(): number {\n    if (!this._dotLottieCommonPlayer) return 0;\n\n    return this._dotLottieCommonPlayer.getManifest()?.animations.length || 0;\n  }\n\n  /**\n   * @returns The ids of all the animations\n   */\n  public animations(): string[] {\n    if (!this._dotLottieCommonPlayer) return [];\n\n    const manifest = this._dotLottieCommonPlayer.getManifest();\n\n    return manifest?.animations.map((animation) => animation.id) || [];\n  }\n\n  /**\n   * @returns The current playing animation\n   */\n  public currentAnimation(): string {\n    if (!this._dotLottieCommonPlayer || !this._dotLottieCommonPlayer.currentAnimationId) return '';\n\n    return this._dotLottieCommonPlayer.currentAnimationId;\n  }\n\n  /**\n   * @returns the current player states\n   */\n  public getState(): DotLottiePlayerState {\n    if (!this._dotLottieCommonPlayer) return DEFAULT_STATE;\n\n    return this._dotLottieCommonPlayer.getState();\n  }\n\n  /**\n   *\n   * @returns The current manifest.\n   */\n  public getManifest(): Manifest | undefined {\n    return this._dotLottieCommonPlayer?.getManifest();\n  }\n\n  /**\n   * @returns The current lottie-web instance.\n   */\n  public getLottie(): AnimationItem | undefined {\n    return this._dotLottieCommonPlayer?.getAnimationInstance();\n  }\n\n  /**\n   * @returns The current version of the dotLottie player and lottie-web.\n   */\n  public getVersions(): Versions {\n    return {\n      lottieWebVersion: DotLottieCommonPlayer.getLottieWebVersion(),\n      dotLottiePlayerVersion: `${pkg.version}`,\n    };\n  }\n\n  /**\n   * Play the previous animation. The order is taken from the manifest.\n   */\n  public previous(\n    getOptions?: (currPlaybackOptions: PlaybackOptions, manifestPlaybackOptions: PlaybackOptions) => PlaybackOptions,\n  ): void {\n    this._dotLottieCommonPlayer?.previous(getOptions);\n  }\n\n  /**\n   * Play the next animation. The order is taken from the manifest.\n   */\n  public next(\n    getOptions?: (currPlaybackOptions: PlaybackOptions, manifestPlaybackOptions: PlaybackOptions) => PlaybackOptions,\n  ): void {\n    this._dotLottieCommonPlayer?.next(getOptions);\n  }\n\n  /**\n   * Reset to the initial state defined in the manifest.\n   */\n  public reset(): void {\n    this._dotLottieCommonPlayer?.reset();\n  }\n\n  public play(\n    targetAnimation?: string | number,\n    getOptions?: (currPlaybackOptions: PlaybackOptions, manifestPlaybackOptions: PlaybackOptions) => PlaybackOptions,\n  ): void {\n    if (!this._dotLottieCommonPlayer) {\n      return;\n    }\n\n    this._dotLottieCommonPlayer.play(targetAnimation, getOptions);\n  }\n\n  /**\n   * Pause animation play.\n   */\n  public pause(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.pause();\n  }\n\n  /**\n   * Stops animation play.\n   */\n  public stop(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.stop();\n  }\n\n  // To do add playback option to manifest\n  // To do add as prop\n\n  /**\n   * Play the animation when it appears on screen and pause when it goes out of view.\n   *\n   * @param playOnShowOptions - what percentage of the target's visibility the observer's callback should be executed\n   * @returns\n   */\n  public playOnShow(playOnShowOptions?: { threshold: number[] }): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.playOnShow(playOnShowOptions);\n  }\n\n  /**\n   * Stop the playOnShow observer.\n   * @returns\n   */\n  public stopPlayOnShow(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.stopPlayOnShow();\n  }\n\n  /**\n   * Play the animation synchronized to page scroll.\n   * @param scrollOptions\n   *  - positionCallback: callback function to get the current position of the player relative to the whole page\n   *  - segments: optional segment of animation to play\n   *  - threshold: optional visibility threshold to start playing the animation. Between 0 and 1. Defaults to [0, 1].\n   * @returns\n   */\n  public playOnScroll(scrollOptions?: {\n    positionCallback?: (position: number) => void;\n    segments?: [number, number];\n    threshold?: [number, number];\n  }): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.playOnScroll(scrollOptions);\n  }\n\n  /**\n   * Stop the play on scroll observer.\n   * @returns\n   */\n  public stopPlayOnScroll(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.stopPlayOnScroll();\n  }\n\n  /**\n   * Seek to a given frame.\n   */\n  public seek(value: number | string): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.seek(value);\n  }\n\n  /**\n   * Snapshot the current frame as SVG.\n   *\n   * If 'download' argument is boolean true, then a download is triggered in browser.\n   */\n  public snapshot(download = true): string {\n    if (!this.shadowRoot) return '';\n\n    // Get SVG element and serialize markup\n    const svgElement = this.shadowRoot.querySelector('.animation svg') as Node;\n    const data = new XMLSerializer().serializeToString(svgElement);\n\n    // Trigger file download\n    if (download) {\n      const element = document.createElement('a');\n\n      element.href = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(data)}`;\n      element.download = `download_${this._seeker}.svg`;\n      document.body.appendChild(element);\n\n      element.click();\n\n      document.body.removeChild(element);\n    }\n\n    return data;\n  }\n\n  /**\n   * Set theme\n   */\n  public setTheme(theme: string): void {\n    this._dotLottieCommonPlayer?.setDefaultTheme(theme);\n  }\n\n  /**\n   * @returns All the theme keys\n   */\n  public themes(): string[] {\n    if (!this._dotLottieCommonPlayer) return [];\n\n    const manifest = this._dotLottieCommonPlayer.getManifest();\n\n    return manifest?.themes?.map((theme) => theme.id) || [];\n  }\n\n  /**\n   * @returns The current applied theme\n   */\n  public getDefaultTheme(): string {\n    if (!this._dotLottieCommonPlayer) return '';\n\n    return this._dotLottieCommonPlayer.defaultTheme;\n  }\n\n  /**\n   * Freeze animation play.\n   * This internal state pauses animation and is used to differentiate between\n   * user requested pauses and component instigated pauses.\n   */\n  private _freeze(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.freeze();\n  }\n\n  /**\n   * Sets animation play speed.\n   *\n   * @param value - Playback speed.\n   */\n  public setSpeed(value = 1): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.setSpeed(value);\n  }\n\n  /**\n   * Animation play direction.\n   *\n   * @param value - Direction values.\n   */\n  public setDirection(value: 1 | -1): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.setDirection(value);\n  }\n\n  /**\n   * Sets the looping of the animation.\n   *\n   * @param value - Whether to enable looping. Boolean true enables looping.\n   */\n  public setLooping(value: boolean | number): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.setLoop(value);\n  }\n\n  public isLooping(): number | boolean {\n    if (!this._dotLottieCommonPlayer) return false;\n\n    return this._dotLottieCommonPlayer.loop;\n  }\n\n  /**\n   * Toggle playing state.\n   */\n  public togglePlay(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.togglePlay();\n  }\n\n  /**\n   * Toggles animation looping.\n   */\n  public toggleLooping(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.toggleLoop();\n  }\n\n  /**\n   * Sets the player mode\n   * @param mode - The mode to set ('normal', 'bounce')\n   */\n  public setPlayMode(mode: PlayMode): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.setMode(mode);\n  }\n\n  /**\n   * Changes the Interactivity state id and starts it.\n   *\n   * @param stateId - state machine id.\n   */\n  public enterInteractiveMode(stateId: string): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.enterInteractiveMode(stateId);\n  }\n\n  /**\n   * Exits the Interactivity mode.\n   */\n  public exitInteractiveMode(): void {\n    if (!this._dotLottieCommonPlayer) return;\n\n    this._dotLottieCommonPlayer.exitInteractiveMode();\n  }\n\n  /**\n   * Reverts PlaybackOptions to manifest values instead of player props.\n   */\n  public revertToManifestValues(playbackKeys?: Array<keyof PlaybackOptions | 'activeAnimationId'>): void {\n    this._dotLottieCommonPlayer?.revertToManifestValues(playbackKeys);\n  }\n\n  /**\n   * Returns the styles for the component. Overriding causes styles to not be applied.\n   */\n  public static get styles(): CSSResult {\n    return styles;\n  }\n\n  /**\n   * Initialize everything on component first render.\n   */\n  protected override async firstUpdated(): Promise<void> {\n    this.container = this.shadowRoot?.querySelector('#animation') as HTMLElement;\n\n    // Add intersection observer for detecting component being out-of-view.\n    if ('IntersectionObserver' in window) {\n      this._io = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n        if (entries[0] !== undefined && entries[0].isIntersecting) {\n          if (this._dotLottieCommonPlayer?.currentState === PlayerState.Frozen) {\n            this.play();\n          }\n        } else if (this._dotLottieCommonPlayer?.currentState === PlayerState.Playing) {\n          this._freeze();\n        }\n      });\n\n      this._io.observe(this.container);\n    }\n\n    // Parse loop attribute if present as a number or string-boolean\n    // Also check if plain 'loop' prop is present\n    if (this.loop) {\n      this._parseLoop(this.loop);\n    } else if (this.hasAttribute('loop')) {\n      this._parseLoop('true');\n    }\n\n    // Parse renderer and set private variable\n    if (this.renderer === 'svg') this._renderer = 'svg';\n    else if (this.renderer === 'canvas') this._renderer = 'canvas';\n    else if (this.renderer === 'html') this._renderer = 'html';\n\n    // Setup lottie player\n    if (this.src) {\n      await this.load(this.src);\n    }\n  }\n\n  /**\n   * Cleanup on component destroy.\n   */\n  public override disconnectedCallback(): void {\n    // Remove intersection observer for detecting component being out-of-view.\n    if (this._io) {\n      this._io.disconnect();\n      this._io = undefined;\n    }\n\n    // Destroy lottie\n    this._dotLottieCommonPlayer?.destroy();\n\n    this._unsubscribeListeners?.();\n\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    if (window) {\n      window.removeEventListener('click', (event) => this._clickOutListener(event));\n    }\n  }\n\n  private _clickOutListener(event: MouseEvent): void {\n    const inside = event.composedPath().some((element) => {\n      if (element instanceof HTMLElement) {\n        return element.classList.contains('popover') || element.id === 'lottie-animation-options';\n      }\n\n      return false;\n    });\n\n    if (!inside && this._popoverIsOpen) {\n      this._popoverIsOpen = false;\n      this.requestUpdate();\n    }\n  }\n\n  protected renderControls(): TemplateResult | undefined {\n    const isPlaying: boolean = this._dotLottieCommonPlayer?.currentState === PlayerState.Playing;\n    const isPaused: boolean = this._dotLottieCommonPlayer?.currentState === PlayerState.Paused;\n\n    return html`\n      <div id=\"lottie-controls\" aria-label=\"lottie-animation-controls\" class=\"toolbar\">\n        ${this._hasMultipleAnimations\n          ? html`\n              <button @click=${(): void => this.previous()} aria-label=\"Previous animation\" class=\"btn-spacing-left\">\n                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    fill-rule=\"evenodd\"\n                    clip-rule=\"evenodd\"\n                    d=\"M1.69214 13.5C1.69214 13.7761 1.916 14 2.19214 14C2.46828 14 2.69214 13.7761 2.69214 13.5L2.69214 2.5C2.69214 2.22386 2.46828 2 2.19214 2C1.916 2 1.69214 2.22386 1.69214 2.5V13.5ZM12.5192 13.7828C13.1859 14.174 14.0254 13.6933 14.0254 12.9204L14.0254 3.0799C14.0254 2.30692 13.1859 1.8262 12.5192 2.21747L4.13612 7.13769C3.47769 7.52414 3.47769 8.4761 4.13612 8.86255L12.5192 13.7828Z\"\n                    fill=\"#20272C\"\n                  />\n                </svg>\n              </button>\n            `\n          : html``}\n        <button\n          id=\"lottie-play-button\"\n          @click=${(): void => {\n            this.togglePlay();\n          }}\n          class=${isPlaying || isPaused\n            ? `active ${this._hasMultipleAnimations ? 'btn-spacing-center' : 'btn-spacing-right'}`\n            : `${this._hasMultipleAnimations ? 'btn-spacing-center' : 'btn-spacing-right'}`}\n          aria-label=\"play / pause animation\"\n        >\n          ${isPlaying\n            ? html`\n                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    d=\"M3.99996 2C3.26358 2 2.66663 2.59695 2.66663 3.33333V12.6667C2.66663 13.403 3.26358 14 3.99996 14H5.33329C6.06967 14 6.66663 13.403 6.66663 12.6667V3.33333C6.66663 2.59695 6.06967 2 5.33329 2H3.99996Z\"\n                    fill=\"#20272C\"\n                  />\n                  <path\n                    d=\"M10.6666 2C9.93025 2 9.33329 2.59695 9.33329 3.33333V12.6667C9.33329 13.403 9.93025 14 10.6666 14H12C12.7363 14 13.3333 13.403 13.3333 12.6667V3.33333C13.3333 2.59695 12.7363 2 12 2H10.6666Z\"\n                    fill=\"#20272C\"\n                  />\n                </svg>\n              `\n            : html`\n                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    d=\"M3.33337 3.46787C3.33337 2.52312 4.35948 1.93558 5.17426 2.41379L12.8961 6.94592C13.7009 7.41824 13.7009 8.58176 12.8961 9.05408L5.17426 13.5862C4.35948 14.0644 3.33337 13.4769 3.33337 12.5321V3.46787Z\"\n                    fill=\"#20272C\"\n                  />\n                </svg>\n              `}\n        </button>\n        ${this._hasMultipleAnimations\n          ? html`\n              <button @click=${(): void => this.next()} aria-label=\"Next animation\" class=\"btn-spacing-right\">\n                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    fill-rule=\"evenodd\"\n                    clip-rule=\"evenodd\"\n                    d=\"M14.3336 2.5C14.3336 2.22386 14.1097 2 13.8336 2C13.5574 2 13.3336 2.22386 13.3336 2.5V13.5C13.3336 13.7761 13.5574 14 13.8336 14C14.1097 14 14.3336 13.7761 14.3336 13.5V2.5ZM3.50618 2.21722C2.83954 1.82595 2 2.30667 2 3.07965V12.9201C2 13.6931 2.83954 14.1738 3.50618 13.7825L11.8893 8.86231C12.5477 8.47586 12.5477 7.52389 11.8893 7.13745L3.50618 2.21722Z\"\n                    fill=\"#20272C\"\n                  />\n                </svg>\n              </button>\n            `\n          : html``}\n        <input\n          id=\"lottie-seeker-input\"\n          class=\"seeker ${this._dotLottieCommonPlayer?.direction === -1 ? 'to-left' : ''}\"\n          type=\"range\"\n          min=\"0\"\n          step=\"1\"\n          max=\"100\"\n          .value=${this._seeker}\n          @input=${(event: Event): void => this._handleSeekChange(event)}\n          @mousedown=${(): void => {\n            this._freeze();\n          }}\n          @mouseup=${(): void => {\n            this._dotLottieCommonPlayer?.unfreeze();\n          }}\n          aria-valuemin=\"1\"\n          aria-valuemax=\"100\"\n          role=\"slider\"\n          aria-valuenow=${this._seeker}\n          aria-label=\"lottie-seek-input\"\n          style=${`--seeker: ${this._seeker}`}\n        />\n        <button\n          id=\"lottie-loop-toggle\"\n          @click=${(): void => this.toggleLooping()}\n          class=${this._dotLottieCommonPlayer?.loop ? 'active btn-spacing-left' : 'btn-spacing-left'}\n          aria-label=\"loop-toggle\"\n        >\n          <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path\n              d=\"M10.8654 2.31319C11.0607 2.11793 11.3772 2.11793 11.5725 2.31319L13.4581 4.19881C13.6534 4.39407 13.6534 4.71066 13.4581 4.90592L11.5725 6.79154C11.3772 6.9868 11.0607 6.9868 10.8654 6.79154C10.6701 6.59628 10.6701 6.27969 10.8654 6.08443L11.6162 5.33362H4V6.66695C4 7.03514 3.70152 7.33362 3.33333 7.33362C2.96514 7.33362 2.66666 7.03514 2.66666 6.66695L2.66666 4.66695C2.66666 4.29876 2.96514 4.00028 3.33333 4.00028H11.8454L10.8654 3.0203C10.6701 2.82504 10.6701 2.50846 10.8654 2.31319Z\"\n              fill=\"currentColor\"\n            />\n            <path\n              d=\"M12.4375 11.9999C12.8057 11.9999 13.1042 11.7014 13.1042 11.3332V9.33321C13.1042 8.96502 12.8057 8.66655 12.4375 8.66655C12.0693 8.66655 11.7708 8.96502 11.7708 9.33321V10.6665H4.15462L4.90543 9.91573C5.10069 9.72047 5.10069 9.40389 4.90543 9.20862C4.71017 9.01336 4.39359 9.01336 4.19832 9.20862L2.31271 11.0942C2.11744 11.2895 2.11744 11.6061 2.31271 11.8013L4.19832 13.687C4.39359 13.8822 4.71017 13.8822 4.90543 13.687C5.10069 13.4917 5.10069 13.1751 4.90543 12.9799L3.92545 11.9999H12.4375Z\"\n              fill=\"currentColor\"\n            />\n          </svg>\n        </button>\n        ${this._hasMultipleAnimations\n          ? html`\n              <button\n                id=\"lottie-animation-options\"\n                @click=${(): void => {\n                  this._popoverIsOpen = !this._popoverIsOpen;\n                  this.requestUpdate();\n                }}\n                aria-label=\"options\"\n                class=\"btn-spacing-right\"\n                style=${`background-color: ${\n                  this._popoverIsOpen ? 'var(--lottie-player-toolbar-icon-hover-color)' : ''\n                }`}\n              >\n                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    d=\"M8.33337 11.6666C7.78109 11.6666 7.33337 12.1143 7.33337 12.6666C7.33337 13.2189 7.78109 13.6666 8.33337 13.6666C8.88566 13.6666 9.33337 13.2189 9.33337 12.6666C9.33337 12.1143 8.88566 11.6666 8.33337 11.6666Z\"\n                    fill=\"#20272C\"\n                  />\n                  <path\n                    d=\"M7.33337 7.99992C7.33337 7.44763 7.78109 6.99992 8.33337 6.99992C8.88566 6.99992 9.33338 7.44763 9.33338 7.99992C9.33338 8.5522 8.88566 8.99992 8.33337 8.99992C7.78109 8.99992 7.33337 8.5522 7.33337 7.99992Z\"\n                    fill=\"#20272C\"\n                  />\n                  <path\n                    d=\"M7.33337 3.33325C7.33337 2.78097 7.78109 2.33325 8.33337 2.33325C8.88566 2.33325 9.33338 2.78097 9.33338 3.33325C9.33338 3.88554 8.88566 4.33325 8.33337 4.33325C7.78109 4.33325 7.33337 3.88554 7.33337 3.33325Z\"\n                    fill=\"#20272C\"\n                  />\n                </svg>\n              </button>\n            `\n          : html``}\n      </div>\n      ${this._popoverIsOpen\n        ? html`\n            <div\n              id=\"popover\"\n              class=\"popover\"\n              tabindex=\"0\"\n              aria-label=\"lottie animations themes popover\"\n              style=\"min-height: ${this.themes().length > 0 ? '84px' : 'auto'}\"\n            >\n              ${!this._animationsTabIsOpen && !this._styleTabIsOpen\n                ? html`\n                    <button\n                      class=\"popover-button\"\n                      tabindex=\"0\"\n                      aria-label=\"animations\"\n                      @click=${(): void => {\n                        this._animationsTabIsOpen = !this._animationsTabIsOpen;\n                        this.requestUpdate();\n                      }}\n                      @keydown=${(key: KeyboardEvent): void => {\n                        if (key.code === 'Space' || key.code === 'Enter') {\n                          this._animationsTabIsOpen = !this._animationsTabIsOpen;\n                          this.requestUpdate();\n                        }\n                      }}\n                    >\n                      <div class=\"popover-button-text\">Animations</div>\n                      <div>\n                        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                          <path\n                            fill-rule=\"evenodd\"\n                            clip-rule=\"evenodd\"\n                            d=\"M10.4697 17.5303C10.1768 17.2374 10.1768 16.7626 10.4697 16.4697L14.9393 12L10.4697 7.53033C10.1768 7.23744 10.1768 6.76256 10.4697 6.46967C10.7626 6.17678 11.2374 6.17678 11.5303 6.46967L16.5303 11.4697C16.8232 11.7626 16.8232 12.2374 16.5303 12.5303L11.5303 17.5303C11.2374 17.8232 10.7626 17.8232 10.4697 17.5303Z\"\n                            fill=\"#4C5863\"\n                          />\n                        </svg>\n                      </div>\n                    </button>\n                  `\n                : html``}\n              ${this.themes().length > 0 && !this._styleTabIsOpen && !this._animationsTabIsOpen\n                ? html` <button\n                    class=\"popover-button\"\n                    aria-label=\"Themes\"\n                    @click=${(): void => {\n                      this._styleTabIsOpen = !this._styleTabIsOpen;\n                      this.requestUpdate();\n                    }}\n                    @keydown=${(key: KeyboardEvent): void => {\n                      if (key.code === 'Space' || key.code === 'Enter') {\n                        this._styleTabIsOpen = !this._styleTabIsOpen;\n                        this.requestUpdate();\n                      }\n                      // eslint-disable-next-line no-secrets/no-secrets\n                    }}\n                  >\n                    <div class=\"popover-button-text\">Themes</div>\n                    <div>\n                      <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                        <path\n                          fill-rule=\"evenodd\"\n                          clip-rule=\"evenodd\"\n                          d=\"M10.4697 17.5303C10.1768 17.2374 10.1768 16.7626 10.4697 16.4697L14.9393 12L10.4697 7.53033C10.1768 7.23744 10.1768 6.76256 10.4697 6.46967C10.7626 6.17678 11.2374 6.17678 11.5303 6.46967L16.5303 11.4697C16.8232 11.7626 16.8232 12.2374 16.5303 12.5303L11.5303 17.5303C11.2374 17.8232 10.7626 17.8232 10.4697 17.5303Z\"\n                          fill=\"#4C5863\"\n                        />\n                      </svg>\n                    </div>\n                  </button>`\n                : ''}\n              ${this._animationsTabIsOpen\n                ? html`<button\n                      class=\"option-title-button\"\n                      aria-label=\"Back to main popover menu\"\n                      @click=${(): void => {\n                        this._animationsTabIsOpen = !this._animationsTabIsOpen;\n                        this.requestUpdate();\n                      }}\n                    >\n                      <div class=\"option-title-chevron\">\n                        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                          <path\n                            fill-rule=\"evenodd\"\n                            clip-rule=\"evenodd\"\n                            d=\"M13.5303 6.46967C13.8232 6.76256 13.8232 7.23744 13.5303 7.53033L9.06066 12L13.5303 16.4697C13.8232 16.7626 13.8232 17.2374 13.5303 17.5303C13.2374 17.8232 12.7626 17.8232 12.4697 17.5303L7.46967 12.5303C7.17678 12.2374 7.17678 11.7626 7.46967 11.4697L12.4697 6.46967C12.7626 6.17678 13.2374 6.17678 13.5303 6.46967Z\"\n                            fill=\"#20272C\"\n                          />\n                        </svg>\n                      </div>\n                      <div>Animations</div>\n                    </button>\n                    <div class=\"option-title-separator\"></div>\n                    <div class=\"option-row\">\n                      <ul>\n                        ${this.animations().map((animationName) => {\n                          return html`\n                            <li>\n                              <button\n                                class=\"option-button\"\n                                aria-label=${`${animationName}`}\n                                @click=${(): void => {\n                                  this._animationsTabIsOpen = !this._animationsTabIsOpen;\n                                  this._popoverIsOpen = !this._popoverIsOpen;\n                                  this.play(animationName, (prev) => ({ ...prev, defaultTheme: '' }));\n                                  this.requestUpdate();\n                                }}\n                                @keydown=${(key: KeyboardEvent): void => {\n                                  if (key.code === 'Space' || key.code === 'Enter') {\n                                    this._animationsTabIsOpen = !this._animationsTabIsOpen;\n                                    this._popoverIsOpen = !this._popoverIsOpen;\n                                    this.play(animationName, (prev) => ({ ...prev, defaultTheme: '' }));\n                                    this.requestUpdate();\n                                  }\n                                }}\n                              >\n                                <div class=\"option-tick\">\n                                  ${this.currentAnimation() === animationName\n                                    ? html`\n                                        <svg\n                                          width=\"24\"\n                                          height=\"24\"\n                                          viewBox=\"0 0 24 24\"\n                                          fill=\"none\"\n                                          xmlns=\"http://www.w3.org/2000/svg\"\n                                        >\n                                          <path\n                                            fill-rule=\"evenodd\"\n                                            clip-rule=\"evenodd\"\n                                            d=\"M20.5281 5.9372C20.821 6.23009 20.821 6.70497 20.5281 6.99786L9.46297 18.063C9.32168 18.2043 9.12985 18.2833 8.93004 18.2826C8.73023 18.2819 8.53895 18.2015 8.39864 18.0593L3.46795 13.0596C3.1771 12.7647 3.1804 12.2898 3.47532 11.999C3.77024 11.7081 4.2451 11.7114 4.53595 12.0063L8.93634 16.4683L19.4675 5.9372C19.7604 5.64431 20.2352 5.64431 20.5281 5.9372Z\"\n                                            fill=\"#20272C\"\n                                          />\n                                        </svg>\n                                      `\n                                    : html``}\n                                </div>\n                                <div>${animationName}</div>\n                              </button>\n                            </li>\n                          `;\n                        })}\n                      </ul>\n                    </div> `\n                : html``}\n              ${this._styleTabIsOpen\n                ? html`<div class=\"option-title-themes-row\">\n                      <button\n                        class=\"option-title-button themes\"\n                        aria-label=\"Back to main popover menu\"\n                        @click=${(): void => {\n                          this._styleTabIsOpen = !this._styleTabIsOpen;\n                          this.requestUpdate();\n                        }}\n                      >\n                        <div class=\"option-title-chevron\">\n                          <svg\n                            width=\"24\"\n                            height=\"24\"\n                            viewBox=\"0 0 24 24\"\n                            fill=\"none\"\n                            xmlns=\"http://www.w3.org/2000/svg\"\n                          >\n                            <path\n                              fill-rule=\"evenodd\"\n                              clip-rule=\"evenodd\"\n                              d=\"M13.5303 6.46967C13.8232 6.76256 13.8232 7.23744 13.5303 7.53033L9.06066 12L13.5303 16.4697C13.8232 16.7626 13.8232 17.2374 13.5303 17.5303C13.2374 17.8232 12.7626 17.8232 12.4697 17.5303L7.46967 12.5303C7.17678 12.2374 7.17678 11.7626 7.46967 11.4697L12.4697 6.46967C12.7626 6.17678 13.2374 6.17678 13.5303 6.46967Z\"\n                              fill=\"#20272C\"\n                            />\n                          </svg>\n                        </div>\n                        <div class=\"option-title-text\">Themes</div>\n                        ${this._dotLottieCommonPlayer?.defaultTheme === ''\n                          ? html``\n                          : html`\n                              <button\n                                class=\"reset-btn\"\n                                @click=${(): void => {\n                                  this.setTheme('');\n                                  this.requestUpdate();\n                                }}\n                              >\n                                Reset\n                              </button>\n                            `}\n                      </button>\n                    </div>\n                    <div class=\"option-title-separator\"></div>\n                    <div class=\"option-row\">\n                      <ul>\n                        ${this._themesForCurrentAnimation.map((themeName) => {\n                          return html`\n                            <li>\n                              <button\n                                class=\"option-button\"\n                                aria-label=\"${themeName.id}\"\n                                @click=${(): void => {\n                                  this.setTheme(themeName.id);\n                                }}\n                                @keydown=${(key: KeyboardEvent): void => {\n                                  if (key.code === 'Space' || key.code === 'Enter') {\n                                    this.setTheme(themeName.id);\n                                  }\n                                }}\n                              >\n                                <div class=\"option-tick\">\n                                  ${this.getDefaultTheme() === themeName.id\n                                    ? html`\n                                        <svg\n                                          width=\"24\"\n                                          height=\"24\"\n                                          viewBox=\"0 0 24 24\"\n                                          fill=\"none\"\n                                          xmlns=\"http://www.w3.org/2000/svg\"\n                                        >\n                                          <path\n                                            fill-rule=\"evenodd\"\n                                            clip-rule=\"evenodd\"\n                                            d=\"M20.5281 5.9372C20.821 6.23009 20.821 6.70497 20.5281 6.99786L9.46297 18.063C9.32168 18.2043 9.12985 18.2833 8.93004 18.2826C8.73023 18.2819 8.53895 18.2015 8.39864 18.0593L3.46795 13.0596C3.1771 12.7647 3.1804 12.2898 3.47532 11.999C3.77024 11.7081 4.2451 11.7114 4.53595 12.0063L8.93634 16.4683L19.4675 5.9372C19.7604 5.64431 20.2352 5.64431 20.5281 5.9372Z\"\n                                            fill=\"#20272C\"\n                                          />\n                                        </svg>\n                                      `\n                                    : html``}\n                                </div>\n                                <div>${themeName.id}</div>\n                              </button>\n                            </li>\n                          `;\n                        })}\n                      </ul>\n                    </div>`\n                : html``}\n            </div>\n          `\n        : html``}\n    `;\n  }\n\n  public override render(): TemplateResult | void {\n    const className: string = this.controls ? 'main controls' : 'main';\n    const animationClass: string = this.controls ? 'animation controls' : 'animation';\n\n    return html`\n      <div id=\"animation-container\" class=${className} lang=\"en\" role=\"img\" aria-label=\"lottie-animation-container\">\n        <div id=\"animation\" class=${animationClass} style=\"background:${this.background};\">\n          ${this._dotLottieCommonPlayer?.currentState === PlayerState.Error\n            ? html` <div class=\"error\">⚠️</div> `\n            : undefined}\n        </div>\n        ${this.controls ? this.renderControls() : undefined}\n      </div>\n    `;\n  }\n}\n\nif (!customElements.get(ELEMENT_NAME)) {\n  customElements.define(ELEMENT_NAME, DotLottiePlayer);\n}\n"]}