{"version":3,"file":"js/app.bcb0b4dc.js","mappings":"sFAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,OAAOC,MAAM,CAACP,EAAIQ,mBAAmB,CAACJ,EAAG,MAAM,CAACE,YAAY,WAAWC,MAAM,CAACP,EAAIS,cAAe,CAAE,SAAUT,EAAIU,SAAU,CAAEV,EAAU,OAAEI,EAAG,mBAAmB,CAACO,MAAM,CAAC,iBAAiBX,EAAIY,gBAAgB,CAACZ,EAAIa,GAAG,WAAW,GAAGb,EAAIc,KAAKV,EAAG,mBAAmB,CAACO,MAAM,CAAC,cAAc,CAACX,EAAIe,oBAAoB,aAAaf,EAAIgB,YAAY,CAAChB,EAAIa,GAAG,SAAS,GAAIb,EAAU,OAAEI,EAAG,kBAAkB,CAACO,MAAM,CAAC,iBAAiBX,EAAIiB,gBAAgB,CAACjB,EAAIa,GAAG,WAAW,GAAGb,EAAIc,KAAKV,EAAG,qBAAqB,CAACO,MAAM,CAAC,OAASX,EAAIkB,WAAW,IAAI,EAC7nBC,EAAkB,GCDlB,EAAS,WAAa,IAAInB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,iBAAiBC,MAAM,CAACP,EAAIS,gBAAgB,CAACT,EAAIa,GAAG,YAAY,EAAE,EACpL,EAAkB,GCMtB,GACAO,MAAA,CACA,UACA,YACA,aACA,aACA,WACA,OACA,aACA,WACA,UACA,sBACA,iBAEAC,IAAAA,GACA,OACAC,UAAA,EAEA,EACAC,QAAA,CACAC,WAAAA,CAAAC,GACA,KAAAH,UAAAG,EACA,KAAAC,MAAA,sBAAAD,EACA,IC9BsQ,I,UCOlQE,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIF,EAAeA,EAAiB,QClB5B,EAAS,WAAa,IAAI3B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,aAAaC,MAAM,CAACP,EAAIS,gBAAgB,CAACT,EAAIa,GAAG,YAAY,EAAE,EAChL,EAAkB,GCKtB,GACAO,MAAA,mBCPqQ,ICOjQ,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIF,EAAe,EAAiB,QClB5B,EAAS,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,mBAAmBC,MAAM,CAACP,EAAI4B,aAAa,CAAC5B,EAAIa,GAAG,YAAY,EAAE,EACnL,EAAkB,GCMtB,GACAO,MAAA,4BCRsQ,ICOlQ,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIF,EAAe,EAAiB,Q,WCKhC,GACAA,MAAA,CACA,SACA,aACA,gBACA,YACA,qBACA,YACA,aACA,aACA,SACA,WACA,OACA,sBACA,gBACA,gBACA,oBAEAC,IAAAA,GACA,OACAH,QAAA,EACAR,OAAA,EAEA,EACAmB,WAAA,CACAC,eAAA,EACAC,cAAA,EACAC,eAAA,EACAC,iBAAAA,EAAAA,GAEAV,QAAA,CACAW,UAAAA,GACA,KAAAC,MAAA,cAAAC,QACA,EACAC,QAAAA,GACA,KAAAnB,QAAA,EACA,IAAAoB,EAAA,KACAC,YAAA,KACAD,EAAApB,QAAA,IACA,KACA,EACAsB,OAAAA,GACA,KAAA9B,OAAA,CACA,EACAc,WAAAA,CAAAC,GACA,KAAAC,MAAA,sBAAAD,EACA,ICrE+P,ICO3P,GAAY,OACd,EACA1B,EACAoB,GACA,EACA,KACA,KACA,MAIF,EAAe,EAAiB,O,qEClBhC,IAAIpB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAU,OAAEI,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,sBAAsB,CAACO,MAAM,CAAC,cAAgB,GAAG,MAAQ,cAAc,GAAGX,EAAIc,IAAI,EACvOK,EAAkB,G,WCMtB,GACAC,MAAA,WACAS,WAAA,CACAY,kBAAAA,EAAAA,ICVwQ,I,UCOpQd,GAAY,OACd,EACA5B,EACAoB,GACA,EACA,KACA,KACA,MAIF,EAAeQ,EAAiB,O,wBClBhC,IAAIe,EAAM,CACT,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,WAAY,MACZ,cAAe,MACf,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,YAAa,MACb,eAAgB,MAChB,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,QAAS,MACT,aAAc,MACd,gBAAiB,MACjB,WAAY,MACZ,UAAW,KACX,aAAc,KACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,YAAa,MACb,eAAgB,MAChB,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,OAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,EAC5B,CACA,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,K,iJCnSb,MAAMY,EAAa,CACxBC,wBAAyB,GACzBC,yBAA0B,IAC1BC,4BAA6B,IAC7BC,qCAAsC,IACtCC,2BAA4B,IAC5BC,gBAAiB,IACjBC,+BAAgC,IAChCC,wBAAyB,GACzBC,yBAA0B,GAC1BC,kCAAmC,IACnCC,gCAAiC,GACjCC,gCAAiC,IACjCC,aAAc,IACdC,wBAAyB,GACzBC,sBAAuB,GACvBC,sBAAuB,GACvBC,4BAA6B,IAC7BC,4BAA6B,GAC7BC,0BAA2B,GAC3BC,mCAAoC,KACpCC,+BAAgC,KAChCC,gCAAiC,KACjCC,kCAAmC,GACnCC,kCAAmC,GACnCC,yBAA0B,GAC1BC,qBAAsB,GACtBC,6BAA8B,I,yBC3BzB,MAAMC,UAAoBnC,MAC/BoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,gDCHK,MAAME,UAAkCvC,MAC7CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,4JCHK,MAAMP,UAA0C9B,MACrDoC,WAAAA,CAAYC,GACVC,MAAM,0DACR,ECHK,MAAMP,UAA0C/B,MACrDoC,WAAAA,CAAYC,GACVC,MAAM,0DACR,E,0BC4BEE,EAAc,SAAUC,GACtBA,GAASA,EAAMC,UAAYD,EAAMC,SAASvE,MAAQsE,EAAMC,SAASvE,KAAKkE,QACxEM,IAAAA,OAAe,IAAI3C,MAAMyC,EAAMC,SAASvE,KAAKkE,UAE7CM,IAAAA,OAAeF,GAEjBG,EAAAA,WAAIC,OAAO,CACTC,MAAO,kBACPC,KAAM,QACNC,KAAMC,EAAAA,EAAKC,GAAG,+BAElB,EAEA,MAAMC,EAA8B,CAAC,iBAE9BC,eAAeC,EAAYZ,GAChC,IACEA,IACIA,EAAMC,WACLD,EAAMC,SAASvE,MACZsE,EAAMC,SAASY,SAAW/C,EAAWa,aAkFxC,OAAIqB,GACTD,EAAYC,GACLc,QAAQC,OAAOf,KAGtBD,EAAY,iCACLe,QAAQC,UAtFf,IAAIC,OACsCC,IAAlCjB,EAAMC,SAASvE,KAAKsF,UAChBhB,EAAMC,SAASY,OACfb,EAAMC,SAASvE,KAAKsF,UAChC,OAAQA,GACN,KAAKlD,EAAWE,yBACd,OAAO8C,QAAQC,OAAO,IAAI/C,EAAAA,EAAyBgC,IACrD,KAAKlC,EAAWM,gBACd,OAAO0C,QAAQC,OACb,IAAIrB,EAAYM,EAAMC,SAASvE,KAAKkE,UAExC,KAAK9B,EAAWiB,4BACd,OAAO+B,QAAQC,OAAO,IAAIhC,EAAAA,EAA4BiB,IACxD,KAAKlC,EAAWC,wBACd,OAAO+C,QAAQC,OAAO,IAAIhD,EAAAA,EAAwBiC,IACpD,KAAKlC,EAAWmB,0BACd,OAAO6B,QAAQC,OAAO,IAAI9B,EAAAA,EAA0Be,IACtD,KAAKlC,EAAWG,4BACd,OAAO6C,QAAQC,OAAO,IAAI9C,EAAAA,EAA4B+B,IACxD,KAAKlC,EAAWkB,4BACd,OAAO8B,QAAQC,OAAO,IAAI/B,EAAAA,EAA4BgB,IACxD,KAAKlC,EAAWW,gCACd,OACEyC,EAAAA,EAAOC,aAAaC,OACVC,EAAAA,EAA2BC,eAAeF,KAE7CN,QAAQC,OACb,IAAItC,EAAAA,EAAgCuB,KAItCuB,EAAavB,GAERc,QAAQC,UACjB,KAAKjD,EAAWQ,wBACd,OAAI4C,EAAAA,EAAOC,aAAaC,OAASI,EAAAA,GAAWJ,KACnCN,QAAQC,OAAO,IAAIzC,EAAAA,EAAwB0B,KAElDuB,EAAavB,GAERc,QAAQC,UACjB,KAAKjD,EAAWS,yBACd,OAAI2C,EAAAA,EAAOC,aAAaC,OAASI,EAAAA,GAAWJ,KACnCN,QAAQC,OAAO,IAAIxC,EAAAA,EAAyByB,KAEnDuB,EAAavB,GAERc,QAAQC,UACjB,KAAKjD,EAAWU,kCAChB,KAAKV,EAAWY,gCAChB,KAAKZ,EAAWa,aAChB,KAAKb,EAAWc,wBAChB,KAAKd,EAAWgB,sBAChB,KAAKhB,EAAWe,sBAChB,KAAKf,EAAW2B,6BAEd,OADA8B,EAAavB,GACNc,QAAQC,OAAO,IAAIU,EAAAA,EAAwBzB,IACpD,KAAKlC,EAAWO,+BACd,OAAOyC,QAAQC,OAAO,IAAIW,EAAAA,EAA2B1B,IACvD,KAAKlC,EAAWI,qCAChB,KAAKJ,EAAWK,2BACd,OAAO2C,QAAQC,OAAO,IAAIjB,EAA0BE,IACtD,KAAKlC,EAAWoB,mCACd,OAAO4B,QAAQC,OAAO,IAAI7B,EAAAA,EAAmCc,IAC/D,KAAKlC,EAAWqB,+BACd,OAAO2B,QAAQC,OAAO,IAAI5B,EAAAA,EAA+Ba,IAC3D,KAAKlC,EAAWsB,gCACd,OAAO0B,QAAQC,OAAO,IAAI3B,EAAAA,EAAgCY,IAC5D,KAAKlC,EAAWuB,kCACd,OAAOyB,QAAQC,OAAO,IAAI1B,EAAkCW,IAC9D,KAAKlC,EAAWwB,kCACd,OAAOwB,QAAQC,OAAO,IAAIzB,EAAkCU,IAC9D,KAAKlC,EAAWyB,yBACd,OAAOuB,QAAQC,OAAO,IAAIY,EAAAA,EAAqB3B,IACjD,KAAKlC,EAAW0B,qBACd,OAAOsB,QAAQC,OAAO,IAAIvB,EAAAA,EAAqBQ,IACjD,QAEE,OADAD,EAAYC,GACLc,QAAQC,OAAOf,GAU9B,CAEA,SAASuB,EAAavB,GACpB,IAAI4B,EAAa5B,GAASA,EAAM6B,QAAU7B,EAAM6B,OAAOC,IACvD,GAAGF,GAAclB,EAA4BqB,SAASH,GAOpD,YALAV,EAAAA,EAAOc,KAAK,CACVZ,KAAMa,EAAAA,EAAkBb,KACxBc,OAAQ,CAAChB,EAAAA,EAAOC,aAAagB,MAC7BC,SAAS,IAKbC,EAAAA,EAAMC,SAAS,UAAW,MAC1BC,aAAaC,WAAW,eACxBD,aAAaC,WAAW,QACxB,IAAIC,EAAe,oBAGfvB,EAAAA,EAAOC,aAAauB,UAA4C,KAAhCxB,EAAAA,EAAOC,aAAauB,SACtDD,EAAevB,EAAAA,EAAOC,aAAauB,SAC1BxB,EAAAA,EAAOyB,SAAWzB,EAAAA,EAAOyB,QAAQC,SAAW1B,EAAAA,EAAOyB,QAAQC,QAAQF,UAA+C,KAAnCxB,EAAAA,EAAOyB,QAAQC,QAAQF,WAC/GD,EAAevB,EAAAA,EAAOyB,QAAQC,QAAQF,UAEpCxB,EAAAA,EAAOC,aAAaC,MAAQI,EAAAA,GAAWJ,MACzCF,EAAAA,EAAOc,KAAK,CACVZ,KAAMI,EAAAA,GAAWJ,KACjByB,MAAO,CACLC,SAAUL,IAIlB,CC1KA,MAAMM,EAAgBC,IAAAA,OAAa,CACjCC,QAASC,8BACTC,iBAAkB,SAAUjB,GAC1B,OAAOkB,EAAAA,EAAAA,WAAUlB,EAAQ,CAAEmB,YAAa,UAAWC,WAAW,GAChE,IAEFP,EAAcQ,aAAaC,QAAQC,KAAI,SAAU5B,GAC/C,IAAI6B,EAAQnB,aAAaoB,QAAQ,eAGjC,OAFID,IACF7B,EAAO+B,QAAQC,cAAiB,UAASH,KACpC7B,CACT,IACAkB,EAAcQ,aAAatD,SAASwD,KAAI,SAAUxD,GAChD,OAAOA,CACT,GAAGW,GACH,O,wGChBO,MAAMkD,EAEX,iBAAMC,CAAYC,GAChB,IAAI/D,QAAiBgE,EAAAA,EAAIC,IAAI,SAAU,CACrChC,OAAQ,CACNiC,MAAOH,KAGX,OAAO/D,EAASvE,KAAKA,IACvB,CAEA,wBAAM0I,CAAmBhD,EAAMiD,EAAcC,EAAaC,EAAa,GAAIC,EAAa,KACtF,IAAIvE,QAAiBgE,EAAAA,EAAIQ,KAAK,oBAAqB,CACjDrD,OACAmD,aACAC,aACAE,YAAY,EACZL,eACAC,gBAEF,OAAOrE,EAASvE,IAClB,CAEA,sBAAMiJ,CAAiBC,EAAQC,SACvBZ,EAAAA,EAAIQ,KAAM,UAASG,sBAA2BC,IAAqB,CACvEC,KAAMC,EAAAA,EAAUC,sBAGpB,CAEA,uCAAMC,CAAkCJ,EAAmBK,SACnDjB,EAAAA,EAAIQ,KAAM,qBAAoBI,aAA6BK,IAEnE,CAEA,0BAAMC,CAAqBN,EAAmBzD,GAC5C,IAAInB,QAAiBgE,EAAAA,EAAIQ,KAAM,qBAAoBI,oBAAqC,CAAEzD,SAC1F,OAAOnB,EAASvE,IAClB,CAEA,uBAAM0J,CAAkBP,EAAmBQ,GACzC,IAAIpF,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoBW,qBAAqCQ,KACvF,OAAOpF,EAASvE,KAAKA,IACvB,CACA,uBAAM4J,CAAkBT,EAAmBzD,EAAMiE,EAAkBvD,EAAKyD,EAAS,GAC/E,IAAIrD,EAAS,CACXd,OACAiE,mBACAvD,OAEW,GAAVyD,IACDrD,EAAOqD,OAASA,GAElB,IAAItF,QAAiBgE,EAAAA,EAAIQ,KAAM,qBAAoBI,iBAAkC3C,GACrF,OAAOjC,EAASvE,KAAKA,IACvB,CAEA,gBAAM8J,CAAWX,EAAmB3H,EAAImI,EAAkBE,EAAQE,EAAcC,EAAqBC,EAAiBC,EAAgC,GACpJ,IAAIC,OAAkC5E,IAApB0E,GAAqD,OAApBA,EAA2B,GAAKA,EAE/EzD,EAAS,CACXmD,mBACAE,SACAE,eACAC,sBACAG,eAGkC,GAAjCD,IACD1D,EAAO0D,8BAAgCA,SAEnC3B,EAAAA,EAAIQ,KAAM,qBAAoBI,kBAAkC3H,YAAcgF,EACtF,CACA,4BAAM4D,CAAuB5I,GAE3B,IAAI+C,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoBhH,KAClD,OAAO+C,EAASvE,KAAKA,IACvB,CAEA,+BAAMqK,CAA0BnB,EAAQM,EAAUc,EAAa,MAC7D,IAAI9D,EAAS,CACX0C,OAAQA,GAEPoB,IACD9D,EAAO8D,WAAaA,GAEtB,IAAI/F,QAAiBgE,EAAAA,EAAIC,IAAK,YAAWgB,WAAkBN,qBAA2B,CACpF1C,WAEF,OAAOjC,EAASvE,KAAKA,IACvB,CAEA,6BAAMuK,CAAwBrB,EAAQoB,EAAa,MACjD,IAAI9D,EAAS,CACX8D,WAAYA,GAEd,IAAI/F,QAAiBgE,EAAAA,EAAIC,IAAK,UAASU,qBAA2B,CAChE1C,WAEF,OAAOjC,EAASvE,KAAKA,IACvB,CAEA,mBAAMwK,GACJ,IAAIjG,QAAiBgE,EAAAA,EAAIC,IAAI,eAC7B,IAAIiC,EAAalG,EAASvE,KAAKA,KAC3B0K,EAAgB,GASpB,OARAD,EAAWE,SAASC,IAClB,IAAIC,EAAe,CAAC,EACpBA,EAAarJ,GAAKoJ,EAASpJ,GAC3BqJ,EAAa/I,KAAO8I,EAAS9I,KAC7B+I,EAAaC,YAAcF,EAASE,YACpCD,EAAaE,eAAiBH,EAASG,eACvCL,EAAcpE,KAAKuE,EAAa,IAE3BH,CACT,CACA,kBAAMM,GACJ,IAAIzG,QAAiBgE,EAAAA,EAAIC,IAAI,cAC7B,OAAOjE,EAASvE,KAAKA,IACvB,CAEA,2BAAMiL,CAAsB9B,EAAmB+B,GAC7C,IAAIC,EAAUC,KAAK1D,UAAU0D,KAAK1D,UAAU,CAAE,KAAQwD,WAChD3C,EAAAA,EAAI8C,MAAO,qBAAoBlC,IAAqBgC,EAAS,CACjEjD,QAAS,CACP,eAAgB,qBAGtB,CAEA,+BAAMoD,CAA0BC,EAAMC,GACpC,IAAIC,EAAW,IAAIC,SACnBD,EAASE,OAAO,WAAYH,GAC5B,IAAIjH,QAAiBgE,EAAAA,EAAIQ,KAAM,qBAAoBwC,SAAaE,EAAU,CACxEvD,QAAS,CACP,eAAgB,yBAGpB,OAAO3D,EAASvE,KAAKA,IACvB,CAEA,qBAAM4L,CAAgB/C,EAAYM,GAChC,IAAI5E,QAAiBgE,EAAAA,EAAIC,IACtB,qBAAoBW,gBAAgCN,KAEvD,OAAOtE,EAASvE,KAAKA,IACvB,CAEA,wBAAM6L,CAAmB1C,EAAmB2C,GAC1C,IAAIvH,QAAiBgE,EAAAA,EAAIC,IACtB,qBAAoBW,gCAAiD,CACpE3C,OAAQ,CACNsF,MAAOA,KAGb,OAAOvH,EAASvE,KAAKA,IACvB,CAEA,kBAAM+L,GACJ,IAAIxH,QAAiBgE,EAAAA,EAAIC,IAAI,2BAC7B,OAAOjE,EAASvE,KAAKA,IACvB,CAEA,mBAAMgM,CAAc9C,EAAQ+C,EAAiBC,SACrC3D,EAAAA,EAAIQ,KAAM,UAASG,kBAAwB,CAC/C+C,kBACAC,eAEJ,CAEA,0BAAMC,CAAqBjD,EAAQkD,EAAQjD,EAAmBkD,EAAc,EAAGC,EAAU,KAAMC,EAAiB,YACxGhE,EAAAA,EAAIQ,KAAK,kBAAmB,CAChCI,kBAAmBA,GAAwC,KAC3DqD,MAAOJ,EACP5K,GAAI0H,GAAkB,KACtBuD,OAAQC,OAAOC,SAASC,KACxBP,YAAaA,EACbC,QAASA,EACTC,eAAgBA,GAEpB,CAEA,wBAAMM,CAAmB3D,GACvB,aAAaX,EAAAA,EAAIC,IAAK,UAASU,IACjC,CACA,2BAAM4D,CAAsB5D,EAAQlJ,SAC5BuI,EAAAA,EAAIwE,IAAK,UAAS7D,IAAUlJ,EACpC,CAEA,wBAAMgN,CAAmB7D,EAAmB8D,GAC1C,IAAIC,EAAW,CACbD,eACAE,OAAQ,qBACRC,SAAU,iBACVC,QAAS,wBAEL9E,EAAAA,EAAIQ,KAAM,qBAAoBI,2BAA4C+D,EAClF,CAEA,qBAAMI,GACJ,IAAI/I,QAAiBgE,EAAAA,EAAIC,IAAI,eAC7B,OAAOjE,EAASvE,KAAKA,IACvB,CAEA,sBAAMuN,CAAiBrE,EAAQM,GAC7B,IAAIjF,QAAiBgE,EAAAA,EAAIC,IAAK,UAASU,aAAkBM,eACzD,OAAOjF,EAASvE,KAAKA,IACvB,CAEA,yBAAMwN,CAAoBtE,EAAQlJ,GAChC,IAAImL,EAAUC,KAAK1D,UAAU0D,KAAK1D,UAAU1H,UACtCuI,EAAAA,EAAI8C,MAAO,UAASnC,IAAUiC,EAAS,CAC3CjD,QAAS,CACP,eAAgB,qBAGtB,CAEA,sBAAMuF,CAAiBtE,EAAmBuE,EAASC,GACjD,IAAIpJ,QAAiBgE,EAAAA,EAAIC,IAAK,oBAAmBW,aAA8B,CAC7E3C,OAAQ,CACNoH,+BAAgCF,EAChCC,wBAGJ,OAAOpJ,EAASvE,IAClB,CAEA,wBAAM6N,CAAmB1E,EAAmB2E,EAAWC,EAAQC,SACvDzF,EAAAA,EAAIQ,KAAM,qBAAoBI,qBAAqC2E,cAAsBC,IAAU,CAAEC,gCAC7G,CAEA,6BAAMC,CAAwB9E,GAC5B,IAAI5E,QAAiBgE,EAAAA,EAAIC,IAAK,6BAA4BW,KAC1D,OAAO5E,EAASvE,KAAKA,IACvB,E,8HCzOK,MAAMkO,EACXjK,WAAAA,GACErF,KAAKuP,MAAQvP,KAAKuP,MAAMC,KAAKxP,MAC7BA,KAAKyP,WAAazP,KAAKyP,WAAWD,KAAKxP,MACvCA,KAAK0P,OAAS1P,KAAK0P,OAAOF,KAAKxP,MAC/BA,KAAK2P,gBAAkB3P,KAAK2P,gBAAgBH,KAAKxP,MACjDA,KAAK4P,WAAa5P,KAAK4P,WAAWJ,KAAKxP,MACvCA,KAAK6P,cAAgB7P,KAAK6P,cAAcL,KAAKxP,MAC7CA,KAAK8P,cAAgB9P,KAAK2P,kBAC1B3P,KAAK+P,aAAe,IAAIC,IAC1B,CAEA,gBAAMJ,CAAWK,GACf,IAAIC,EAAW,CACbC,UAAWF,EAAKE,UAChBC,SAAUH,EAAKG,SACf1G,aAAcuG,EAAKvG,aACnB2G,cAAeJ,EAAKK,SACpBC,eAAe,EACfC,kBAAmBP,EAAKO,kBACxBC,aAAcR,EAAKQ,aACnBC,UAAWT,EAAKS,UAChBC,kBAAmBV,EAAKU,gBACxBC,OAAQnG,EAAAA,EAAUoG,8BAEhBlL,QAAiBgE,EAAAA,EAAIQ,KAAK,kBAAmB+F,GACjD,OAAOvK,EAASvE,KAAKwB,EACvB,CAEA,WAAM2M,CAAMuB,EAAcjD,GACnBiD,EAAaC,eAAe,uBAC/BD,EAAaN,kBAAoBQ,EAAAA,EAAmBC,QAEtD,IAAI1B,EAAQ,CACV2B,SAAUJ,EAAapH,aACvB4G,SAAUQ,EAAaR,SACvBzC,OAAQA,EACR2C,kBAAmBM,EAAaN,mBAE9B7K,QAAiBgE,EAAAA,EAAIQ,KAAK,wBAAyBoF,GAEvD,OADAtH,aAAakJ,QAAQ,cAAexL,EAASvE,KAAKgQ,aAC3CzL,EAASvE,IAClB,CAEA,oBAAMiQ,CAAeC,GACnB,IAAI3L,QAAiBgE,EAAAA,EAAIQ,KAAK,sCAAuC,CACnEmH,aACAzD,OAAQC,OAAOC,SAASC,OAE1B,OAAOrI,EAASvE,IAClB,CAEA,mBAAMyO,CAAcY,GAClB,IAAI9K,QAAiBgE,EAAAA,EAAIC,IAAI,WAAY,CACvCN,QAAS,CAAE,kBAAkB,GAC7B1B,OAAQ,CACN2J,OAAQd,KAGRe,EAAe7L,EAASvE,KAAKA,KACjC,OAAOoQ,GAAgBC,MAAMC,QAAQF,IAAiBA,EAAaG,OAAS,EAAIH,EAAa,GAAK,IACpG,CAEA,uBAAMI,CAAkBC,EAA2B,CAAC,GAC7CA,EAAyBd,eAAe,uBAC3Cc,EAAyBrB,kBAAoBQ,EAAAA,EAAmBc,QAGlE,IAAIF,EAAoB,CACtB/D,OAAQgE,GAA0BhE,OAClC2C,kBAAmBqB,GAA0BrB,kBAC7CuB,kBAAmBF,GAA0BE,mBAE3CpM,QAAiBgE,EAAAA,EAAIQ,KAAK,wBAAyByH,GACvD,IAAKjM,GAAUvE,MAAMgQ,YACnB,MAAM,IAAIY,WAGZ,OADA/J,aAAakJ,QAAQ,cAAexL,EAASvE,KAAKgQ,aAC3CzL,EAASvE,IAAO,CAEzB6Q,oBAAAA,GACA,CAEAxC,UAAAA,GACA,CAEA,YAAMC,GACN,CAEAC,eAAAA,GACA,E,oFC7FK,MAAMuC,EACX7M,WAAAA,CAAYkF,GACVvK,KAAKuK,kBAAoBA,CAC3B,CACA,2BAAM4H,CAAsBC,EAASC,EAAaC,EAAcC,GAC9D,IAAIC,EAAa,CACfJ,UACAE,eACAC,kBAEE5M,QAAiBgE,EAAAA,EAAIQ,KAAM,qBAAoBnK,KAAKuK,gCAAgC8H,uBAAmCG,GAC3H,OAAO7M,EAASvE,KAAKA,IACvB,CAEA,sBAAMqR,CAAiBC,EAAWvD,GAChC,IAAIxJ,QAAiBgE,EAAAA,EAAIQ,KAAM,qBAAoBnK,KAAKuK,8BAA8B4E,qBAA2B,CAAEuD,cACnH,OAAQ/M,EAASvE,KAAKA,IACxB,CAEA,sBAAMuR,CAAiBC,GACrB,IAAIjN,QAAiBgE,EAAAA,EAAIC,IAAK,oBAAmB5J,KAAKuK,0CAA0CqI,0BAChG,OAAOjN,EAASvE,KAAKA,IACvB,CAEA,sBAAMyR,CAAiBL,GACrB,IAAI7M,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,+BAAgC,CAAE3C,OAAQ4K,IACjG,OAAO7M,EAASvE,KAAKA,IACvB,CAEA,eAAM0R,CAAUxI,GACd,IAAI3E,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,mCAAmCD,KAC1F,OAAO3E,EAASvE,KAAKA,IACvB,CAEA,sBAAM2R,GACJ,IAAInL,EAAS,CACbA,WAAmB,GACfjC,QAAiBgE,EAAAA,EAAIC,IAAK,oBAAmB5J,KAAKuK,2BAA4B,CAAE3C,OAAQA,IAC5F,OAAOjC,EAASvE,KAAKA,KAAK,EAC5B,CAEA,eAAM4R,CAAUC,GACd,IAAIC,EAAU,CACZ,CACEC,MAAO,OACPC,SAAU,EACVC,OAAQJ,IAGRtN,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,2BAA4B,CAAE3C,OAAQ,CAC3FsL,aAEF,OAAOvN,EAASvE,KAAKkS,MACvB,CAEA,sBAAMC,CAAiBC,EAAkBC,GACvC,IAAI9N,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,mCAAoC,CACzF3C,OAAQ,CACN,IAAO4L,EACP,SAAYC,KAGhB,OAAO9N,EAASvE,KAAKA,IACvB,CACA,6BAAMsS,CAAwBC,SACtBhK,EAAAA,EAAIQ,KAAM,oBAAmBnK,KAAKuK,gCAAgCoJ,EAAkBC,UAAUhR,YAAa+Q,EACnH,CAEA,eAAME,CAAU1E,EAAQ2E,GACtB,IAAInO,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,8BAA8B4E,WAAiB,CACpGvH,OAAQ,CACN,KAAQkM,KAGZ,OAAOnO,EAASvE,KAAKA,IACvB,CAEA,eAAM2S,CAAU5E,EAAQ2E,EAAS,KAAME,EAAW,MAChD,IAAIpM,EAAS,CAAC,EACVoM,IAEFpM,EAAO,OAASoM,EAASC,KAAK,MAE5BH,IAEFlM,EAAO,QAAUkM,GAEnB,IAAInO,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,8BAA8B4E,WAAiB,CAAEvH,WACxG,OAAOjC,EAASvE,KAAKA,IACvB,CAEA,iBAAM8S,CAAa/E,EAAQvC,EAAMuH,EAAQ7J,EAAQ8J,EAAcC,EAAUC,EAAYC,EAA4B,IAC/G,IAAI1H,EAAW,IAAIC,SACnBD,EAASE,OAAO,YAAaH,EAAMyH,GACnCxH,EAASE,OAAO,iBAAkBoH,GAClCtH,EAASE,OAAO,SAAUzC,GAC1B,IAAI,IAAIkK,EAAI,EAAGA,EAAID,EAA0B5C,OAAQ6C,IACnD3H,EAASE,OAAQ,6BAA4ByH,KAAMD,EAA0BC,IAE3EF,GACFzH,EAASE,OAAO,aAAcuH,GAEhC,IAAIhL,EAAU,CAAE,eAAgB,uBAC5B8K,IACF9K,EAAQ,iBAAmB8K,GAG7B,IAAIzO,QAAiBgE,EAAAA,EAAIQ,KAAM,oBAAmBnK,KAAKuK,8BAA8B4E,kBAAwBtC,EAAU,CACrHvD,QAASA,IAGX,OAAO3D,EAASvE,KAAKA,IACvB,CAEA,uBAAMqT,CAAkBN,EAAQhF,GAC9B,IAAIxJ,QAAkBgE,EAAAA,EAAIC,IAAK,oBAAmB5J,KAAKuK,8BAA8B4E,gBAAqBgF,WAC1G,OAAOxO,EAASvE,KAAKA,IACvB,CAEA,iBAAMsT,CAAYP,EAAQhF,GACxB,IAAIxJ,QAAkBgE,EAAAA,EAAIC,IAAK,oBAAmB5J,KAAKuK,8BAA8B4E,gBAAqBgF,cAC1G,OAAOxO,EAASvE,KAAKA,IACvB,CAEA,iBAAMuT,CAAY/H,EAAMuC,EAAQ7E,GAC9B,IAAIuC,EAAW,IAAIC,SACnBD,EAASE,OAAO,aAAcH,GAC9BC,EAASE,OAAO,SAAUzC,GAE1B,IAAI3E,QAAiBgE,EAAAA,EAAIQ,KAAM,qBAAoBnK,KAAKuK,8BAA8B4E,kBAAwBtC,EAAU,CACtHvD,QAAS,CAAE,eAAgB,yBAE7B,OAAO3D,EAASvE,KAAKA,IACvB,CAEA,oBAAMwT,CAAezF,EAAQ0F,GAC3B,IAAIlP,QAAiBgE,EAAAA,EAAIC,IAAK,oBAAmB5J,KAAKuK,8BAA8B4E,WAAiB,CACnGvH,OAAQ,CACNkN,IAAKD,KAGT,OAAOlP,EAASvE,KAAKA,IACvB,CAEA,gCAAM2T,CAA2BC,GAE/B,IAAIrP,QAAiBgE,EAAAA,EAAIC,IAAK,oBAAmB5J,KAAKuK,oDAAoDyK,EAAaf,KAAK,oBAC5H,OAAOtO,EAASvE,IAClB,CAEA,kBAAM6T,CAAa5C,GACjB,IAAI1M,QAAiBgE,EAAAA,EAAIC,IAAK,oBAAmB5J,KAAKuK,gCAAgC8H,KACtF,OAAO1M,EAASvE,KAAKA,IACvB,E,+FCxJK,MAAM8T,EACX7P,WAAAA,CAAYkF,GACVvK,KAAKuK,kBAAoBA,CAC3B,CAEA,8BAAM4K,GACJ,IAAIxP,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,8BACvD,OAAO5E,EAASvE,KAAKA,IACvB,CAEA,yBAAMgU,CAAoBC,EAAWC,GACnC,IAAI7I,GAAQ8I,EAAAA,EAAAA,SAAQF,EAAWC,SACzB3L,EAAAA,EAAI8C,MAAO,qBAAoBzM,KAAKuK,6BAA8BkC,EAC1E,CAEA,mBAAM+I,CAAc/G,GAClB,IAAI9I,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,wCAAyC,CAC9F3C,OAAQ,CACN6G,aAGJ,OAAO9I,EAASvE,KAAKA,IACvB,CAEA,uBAAMqU,CAAkBpD,GACtB,IAAI1M,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,0CAA2C,CAChG3C,OAAQ,CACNyK,iBAGJ,OAAO1M,EAASvE,KAAKA,IACvB,CACA,0BAAMsU,CAAqBlH,GACzB,IAAI7I,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,kDAAmD,CACxG3C,OAAQ,CACN4G,cAGJ,OAAO7I,EAASvE,KAAKA,IACvB,CAEA,kBAAMuU,CAAaC,EAAcC,GAC/B,IAAIjO,EAAS,CAAC,EACVgO,IAEFhO,EAAO,gBAAkBgO,GAEvBC,IAEFjO,EAAO,WAAaiO,GAEtB,IAAIlQ,QAAiBgE,EAAAA,EAAIC,IAAK,qBAAoB5J,KAAKuK,uCAAwC,CAC7F3C,WAEF,OAAOjC,EAASvE,KAAKA,IACvB,CAEA,qBAAM0U,CAAgBC,GACpB,IAAIpQ,QAAiBgE,EAAAA,EAAIQ,KAAM,qBAAoBnK,KAAKuK,uCAAwCwL,GAChG,OAAOpQ,EAASvE,KAAKA,IACvB,CAEA,qBAAM4U,CAAgBC,EAAY7U,GAChC,IAAIuE,QAAiBgE,EAAAA,EAAI8C,MAAO,qBAAoBzM,KAAKuK,wCAAwC0L,IAC/F7U,EAAM,CACJkI,QAAS,CACP,eAAgB,sBAGtB,OAAO3D,EAASvE,KAAKA,IACvB,E,mCCrEF,MAAM8U,EAAqB,WAE3B,KACEC,qBAAuB,GAAED,QACzBE,QAAU,GAAEF,mBACZG,cAAgB,GAAEH,mBAClBI,kBAAoB,GAAEJ,qBACtBK,YAAc,GAAEL,wBAChBM,YAAc,GAAEN,wBAChBO,gBAAkB,GAAEP,4BACpBQ,gBAAkB,GAAER,6BACpBS,aAAe,GAAET,yBACjBU,yBAA2B,GAAEV,uCAC7BW,aAAe,GAAEX,0BACjBY,kBAAoB,GAAEZ,gCACtBa,gBAAkB,GAAEb,uBACpBc,cAAe,0CACfC,MAAO,UACPC,gBAAkB,qEAClBC,mBAAqB,8EACrBC,UAAWxO,mCACXyO,wBAAyB,OACzBC,qBAAsB,EACtBzN,MAAOjB,iBACP2O,sBAAuB3O,kEACvB4O,YAAa5O,4BACb6O,gCACM7O,6EACN8O,0CACM9O,0CACN+O,mBAAoB/O,0DACpBgP,cAAe,8BACfC,gBAAiB,uCACjBC,oBAAqBlP,4EACrBmP,wBAA0B,4EAC1BC,wBAA0B,4EAC1BC,cAAe,mCACfC,YAAatP,0BACbuP,kBAAmB,sCACnBC,QAASxP,SACTyP,sBAAuB,wDACvBC,SAAU,mC,mFC3CL,MAAMC,EAAY,CACvB,CACE3V,GAAI,EACJkE,KAAMZ,EAAAA,EAAKC,GAAG,qCACdjD,KAAM,MAER,CACEN,GAAI,EACJkE,KAAMZ,EAAAA,EAAKC,GAAG,wCACdjD,KAAM,SAER,CACEN,GAAI,EACJkE,KAAMZ,EAAAA,EAAKC,GAAG,qCACdjD,KAAM,MAER,CACEN,GAAI,EACJkE,KAAMZ,EAAAA,EAAKC,GAAG,mCACdjD,KAAM,M,qECrBH,MAAMsV,EAAe,CAC1BC,QAAS,EACTC,KAAM,EACNC,QAAS,EACTC,OAAQ,E,qECJH,MAAM5H,EAAqB,CAChCC,OAAQ,EACRa,OAAQ,EACR+G,MAAO,E,sNCFF,MAAMC,EAAa,CACxB,CACElW,GAAI,EACJmF,MAAO,UACPgR,KAAM,mBACNC,KAAM,oBAER,CACEpW,GAAI,EACJmF,MAAO,UACPgR,KAAM,mBACNC,KAAM,oBAER,CACEpW,GAAI,EACJmF,MAAO,UACPgR,KAAM,mBACNC,KAAM,oBAER,CACEpW,GAAI,EACJmF,MAAO,SACPgR,KAAM,kBACNC,KAAM,mBAER,CACEpW,GAAI,EACJmF,MAAO,iBACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,EACJmF,MAAO,cACPgR,KAAM,uBACNC,KAAM,wBAER,CACEpW,GAAI,EACJmF,MAAO,OACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,EACJmF,MAAO,cACPgR,KAAM,wBACNC,KAAM,yBAER,CACEpW,GAAI,GACJmF,MAAO,SACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,GACJmF,MAAO,OACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,GACJmF,MAAO,YACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,GACJmF,MAAO,cACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,GACJmF,MAAO,qBACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,EACJmF,MAAO,kBACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,GACJmF,MAAO,YACPgR,KAAM,GACNC,KAAM,IAER,CACEpW,GAAI,GACJmF,MAAO,SACPgR,KAAM,kBACNC,KAAM,oBAIGC,EAAS,CACpBC,QAAS,EACTC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,gBAAiB,EACjBC,KAAM,EACNC,OAAQ,GACRC,KAAM,GACNC,UAAW,GACXC,YAAa,GACbC,mBAAoB,GACpBC,UAAW,GACXC,OAAQ,IAGGC,EAAS,qBAETC,EAAS,CACpBC,gBAAiB,kBACjBT,OAAQ,SACRU,KAAM,OACNC,KAAM,OACNC,YAAa,cACbC,mBAAoB,qBACpBC,QAAS,UACTC,UAAW,aAGAC,EAAO,CAClBC,iBAAkB,mBAClBC,SAAU,YAGCC,EAAgB,CAC3B,CACElY,GAAI,EACJ4L,SAAU,kBAEZ,CACE5L,GAAI,EACJ4L,SAAU,cAEZ,CACE5L,GAAI,EACJ4L,SAAU,gBAEZ,CACE5L,GAAI,EACJ4L,SAAU,oBAEZ,CACE5L,GAAI,EACJ4L,SAAU,gBAEZ,CACE5L,GAAI,EACJ4L,SAAU,yBAEZ,CACE5L,GAAI,EACJ4L,SAAU,cAGDuM,EAAa,CACxBzB,cAAe,EACf0B,UAAW,EACXC,YAAa,EACbxB,gBAAiB,EACjBK,YAAa,EACbC,mBAAoB,EACpBC,UAAW,E,qEC9KN,MAAMvP,EAAY,CACvByQ,eAAgB,EAChBC,aAAc,GACdC,aAAc,GACdC,aAAc,GACd3Q,qBAAsB,GACtBmG,6BAA8B,G,qECNzB,MAAMhM,UAAuC5B,MAClDoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMX,UAAkC1B,MAC7CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAM5B,UAAiCT,MAC5CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAM3B,UAAoCV,MAC/CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,oECHK,MAAM8B,UAAmCnE,MAC9CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMrB,UAAiChB,MAC5CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAM6B,UAAgClE,MAC3CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAM7B,UAAgCR,MAC3CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMtB,UAAgCf,MAC3CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMnB,UAAwClB,MACnDoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMb,UAAoCxB,MAC/CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMJ,UAA6BjC,MACxCoC,WAAAA,CAAYK,GACVH,MAAMG,EACR,E,qECHK,MAAM2B,UAA6BpE,MACxCoC,WAAAA,CAAYK,GACVH,MAAMG,GACN1F,KAAKwR,aAAe9L,EAAMC,SAASvE,IACrC,E,qECJK,MAAMwD,UAA2C3B,MACtDoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMR,UAAwC7B,MACnDoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,qECHK,MAAMZ,UAAoCzB,MAC/CoC,WAAAA,CAAYC,GACVC,MAAMD,EACR,E,4FCHF,MAAMgW,EAASA,IAAM,kEACfC,EAAQA,IAAM,kEACdC,EAAe,CACnB1U,KAAM,SACNe,KAAM,SACNnG,UAAW4Z,EACXG,KAAM,CACJC,cAAc,EACdC,MAAO,wBACPC,WAAY,wBACZC,qBAAqB,IAInBC,EAAc,CAClBhV,KAAM,QACNe,KAAM,8CACNnG,UAAW6Z,EACXE,KAAM,CACJC,cAAc,EACdC,MAAO,wBACPC,WAAY,wBACZC,qBAAqB,EACrBE,UAAW,SACXC,gBAAgB,IAIPC,EAAcT,EACdU,EAAaJ,C,4FC7B1B,MAAMK,EAASA,IAAM,gGACfC,EAAc,CAClBtV,KAAM,eACNe,KAAM,gBACNnG,UAAWya,EACXV,KAAM,CACJC,cAAc,EACdC,MAAO,SACPC,WAAY,SACZC,qBAAqB,EACrBQ,cAAc,IAIZC,EAAkB,CACtBxV,KAAM,YACNe,KAAM,sBACNnG,UAAWya,EACXV,KAAM,CACJC,cAAc,EACdC,MAAO,SACPC,WAAY,SACZC,qBAAqB,EACrBQ,cAAc,EACdE,kBAAkB,IAGTC,EAAaJ,EACbK,EAAiBH,C,6+BC5BvB,MAAMI,EAAgBtZ,OAAOuZ,OAAO,CACzCC,SAAU,EACVC,MAAO,IAOIC,GALkB1Z,OAAOuZ,OAAO,CAC3CI,OAAQ,SACRC,MAAO,UAGyB5Z,OAAOuZ,OAAO,CAC9CM,oBAAqB,EACrBC,wBAAyB,KAGdC,EAA8B/Z,OAAOuZ,OAAO,CACvDS,SAAU,CAAExa,GAAI,EAAGkE,KAAM,WAAYuW,UAAW,YAChDC,YAAa,CAAE1a,GAAI,EAAGkE,KAAM,cAAeuW,UAAW,eACtDE,SAAU,CAAE3a,GAAI,EAAGkE,KAAM,WAAYuW,UAAW,YAChDG,cAAe,CAAE5a,GAAI,EAAGkE,KAAM,gBAAiBuW,UAAW,gBAC1DI,WAAY,CAAE7a,GAAI,EAAGkE,KAAM,YAAauW,UAAW,eAGxCK,EAA8Bta,OAAOuZ,OAAO,CACvDgB,QAAS,CAAE/a,GAAI,EAAGkE,KAAM,YACxB8W,QAAS,CAAEhb,GAAI,EAAGkE,KAAM,YACxB+W,YAAa,CAAEjb,GAAI,EAAGkE,KAAM,eAC5BgX,aAAc,CAAElb,GAAI,EAAGkE,KAAM,gBAC7BiX,YAAa,CAAEnb,GAAI,EAAGkE,KAAM,eAC5BkX,OAAQ,CAAEpb,GAAI,EAAGkE,KAAM,UACvBmX,cAAe,CAAErb,GAAI,EAAGkE,KAAM,gBAGnBoX,EAAoC9a,OAAOuZ,OAAO,CAC7De,EAA4BC,QAAQ/a,GACpC8a,EAA4BE,QAAQhb,GACpC8a,EAA4BG,YAAYjb,GACxC8a,EAA4BI,aAAalb,GACzC8a,EAA4BK,YAAYnb,KAI7Bub,EAAoB,CAC/BC,KAAM,EACNC,aAAc,EACdC,WAAY,EACZC,KAAM,EACNC,OAAQ,GAGGC,EAA2Brb,OAAOuZ,OAAO,CAACe,EAA4BC,QAAQ/a,GAAI8a,EAA4BE,QAAQhb,GAAI8a,EAA4BG,YAAYjb,GAAI8a,EAA4BM,OAAOpb,GAAI8a,EAA4BO,cAAcrb,KAEvP8b,EAAmCtb,OAAOuZ,OAAO,CAE5DgC,YAAa,CAACjB,EAA4BM,OAAQN,EAA4BO,cAAeP,EAA4BG,aACzHlC,MAAO,CAAC+B,EAA4BC,QAASD,EAA4BE,QAASF,EAA4BG,aAC9Ge,aAAc,CAAClB,EAA4BM,OAAQN,EAA4BO,eAC/EY,UAAW,CAACnB,EAA4BM,OAAQN,EAA4BO,eAC5EhH,MAAO,CAACyG,EAA4BM,OAAQN,EAA4BO,cAAeP,EAA4BG,aACnHiB,SAAU,CAACpB,EAA4BM,OAAQN,EAA4BO,eAC3Ec,OAAQ,CAACrB,EAA4BM,OAAQN,EAA4BO,eACzEe,SAAU,CAACtB,EAA4BM,OAAQN,EAA4BO,cAAeP,EAA4BG,aACtHoB,QAAS,CAACvB,EAA4BM,OAAQN,EAA4BO,cAAeP,EAA4BG,aACrHqB,YAAa,CAACxB,EAA4BM,OAAQN,EAA4BO,cAAeP,EAA4BG,aACzHsB,UAAW,CAACzB,EAA4BI,aAAcJ,EAA4BK,aAClFqB,MAAO,CAAC1B,EAA4BI,aAAcJ,EAA4BK,aAC9EsB,MAAO,CAAC3B,EAA4BM,OAAQN,EAA4BO,eACxEqB,KAAM,CAAC5B,EAA4BM,OAAQN,EAA4BO,iBAG5DsB,EAAwBnc,OAAOuZ,OAAO,CACjD6C,OAAQ,EACRC,OAAQ,EACRC,OAAQ,EACRC,SAAU,IAGCC,EAAa,CACxBC,QAAS,EACTC,MAAO,GAEIC,EAAe,iBACfC,EAAW,WACXC,EAAY,YACZC,EAAiB,mBAEjBC,EAAW,CAAC,CACvBvd,GAAI,EACJkE,KAAM,SACNsZ,UAAW,OAEb,CACExd,GAAI,EACJkE,KAAM,SACNsZ,UAAW,OAEb,CACExd,GAAI,EACJkE,KAAM,UACNsZ,UAAW,OAEb,CACExd,GAAI,EACJkE,KAAM,YACNsZ,UAAW,OAEb,CACExd,GAAI,EACJkE,KAAM,WACNsZ,UAAW,OAEb,CACExd,GAAI,EACJkE,KAAM,SACNsZ,UAAW,OACV,CACDxd,GAAI,EACJkE,KAAM,WACNsZ,UAAW,QAGAC,EAAM,MACNC,EAAsB,CACjC,CACE1d,GAAI,EACJkE,KAAM,sDAYGyZ,EAAwB,CACnC,CACE/e,MAAO,OACPsF,KAAM,wCAER,CACEtF,MAAO,aACPsF,KAAM,8CAIG0Z,EAAc,CACzB,CACEhf,MAAO,EACPif,MAAO,gCAGT,CACEjf,MAAO,GACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,SAGT,CACEjf,MAAO,IACPif,MAAO,SAGT,CACEjf,MAAO,IACPif,MAAO,SAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,IACPif,MAAO,QAGT,CACEjf,MAAO,KACPif,MAAO,QAGT,CACEjf,MAAO,KACPif,MAAO,QAGT,CACEjf,MAAO,KACPif,MAAO,QAGT,CACEjf,MAAO,KACPif,MAAO,QAGT,CACEjf,MAAO,KACPif,MAAO,QAGT,CACEjf,MAAO,KACPif,MAAO,SAGT,CACEjf,MAAO,KACPif,MAAO,SAGT,CACEjf,MAAO,KACPif,MAAO,2BAIEC,EAAkB,CAC7BC,gBAAiB,EACjBC,SAAU,GAGCC,EAAUzd,OAAOuZ,OAAO,CACnC7K,OAAQ,EACRgP,SAAU,EACVC,QAAS,IAGEC,EAAiB,CAC5BC,OAAQ,EACRC,SAAU,EACVC,aAAc,EACdC,cAAe,EACfC,YAAa,EACbC,MAAO,GAGIC,EAAW,CACtB,CAAE3e,GAAIie,EAAQC,SAAUha,KAAM,YAE9B,CAAElE,GAAIie,EAAQ/O,OAAQhL,KAAM,WAGjB0a,EAAa,CACxB,CAAE5e,GAAIoe,EAAeC,OAAQna,KAAM,UACnC,CAAElE,GAAIoe,EAAeE,SAAUpa,KAAM,aACrC,CAAElE,GAAIoe,EAAeG,aAAcra,KAAM,iBACzC,CAAElE,GAAIoe,EAAeI,cAAeta,KAAM,kBAC1C,CAAElE,GAAIoe,EAAeK,YAAava,KAAM,gBACxC,CAAElE,GAAIoe,EAAeM,MAAOxa,KAAM,UAGvB2a,EAA0Bre,OAAOuZ,OAAO,CACnD+E,SAAU,EACVC,OAAQ,IAGGC,EAAcxe,OAAOuZ,OAAO,CACvCkF,QAAS,EACTZ,OAAQ,IAGGa,EAAuB1e,OAAOuZ,OAAO,CAChDoF,OAAQ,SACRC,SAAU,WACVC,YAAa,gBAGFC,EAAkB9e,OAAOuZ,OAAO,CAC3CwF,OAAQ,SACRC,UAAW,cAGAC,EAA4B,CACvCC,gCAAiC,EACjCC,uCAAwC,EACxCC,iCAAkC,EAClCC,gCAAiC,EACjCC,sBAAuB,EACvBC,sBAAuB,EACvBC,6BAA8B,EAC9BC,4BAA6B,EAC7BC,mBAAoB,EACpBC,gBAAiB,GACjBC,iCAAkC,GAClCC,yBAA0B,GAC1BC,uBAAwB,GACxBC,qBAAsB,GACtBC,sBAAuB,GACvBC,oBAAqB,GACrBC,mBAAoB,GACpBC,mBAAoB,GACpBC,6BAA8B,GAC9BC,6BAA8B,GAC9BC,cAAe,GACfC,kBAAmB,GACnBC,qBAAsB,GACtBC,iBAAkB,GAClBC,oBAAqB,GACrBC,wBAAyB,GACzBC,cAAe,GACfC,sBAAuB,GACvBC,wBAAyB,GACzBC,uBAAwB,GACxBC,gBAAiB,GACjBC,kBAAmB,GACnBC,sBAAuB,GACvBC,gBAAiB,IAGNC,EAAoB,CAC/B,CACEhjB,MAAO,wBACPif,MAAO,4CACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,qBAEpB,CACEpjB,MAAO,wBACPif,MAAO,yCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,QAEpB,CACEpjB,MAAO,uBACPif,MAAO,wCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,QAEpB,CACEpjB,MAAO,oBACPif,MAAO,yCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,QAEpB,CACEpjB,MAAO,2BACPif,MAAO,yCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,mBAEpB,CACEpjB,MAAO,qBACPif,MAAO,2CACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,eAEpB,CACEpjB,MAAO,wBACPif,MAAO,uCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,SAEpB,CACEpjB,MAAO,qBACPif,MAAO,uCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,YACVC,iBAAkB,UAEpB,CACEpjB,MAAO,kBACPif,MAAO,wCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,YACVC,iBAAkB,SAEpB,CACEpjB,MAAO,sBACPif,MAAO,qDACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,mBACVC,iBAAkB,WAEpB,CACEpjB,MAAO,gBACPif,MAAO,+CACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,mBACVC,iBAAkB,WAEpB,CACEpjB,MAAO,0BACPif,MAAO,wDACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,mBACVC,iBAAkB,WAEpB,CACEpjB,MAAO,gBACPif,MAAO,+CACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,mBACVC,iBAAkB,WAEpB,CACEpjB,MAAO,kCACPif,MAAO,sDACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,mBACVC,iBAAkB,kBAEpB,CACEpjB,MAAO,kCACPif,MAAO,sDACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,mBACVC,iBAAkB,kBAEpB,CACEpjB,MAAO,+BACPif,MAAO,0CACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,YACVC,iBAAkB,SAEpB,CACEpjB,MAAO,+BACPif,MAAO,wCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,YACVC,iBAAkB,sBAEpB,CACEpjB,MAAO,wBACPif,MAAO,iCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,WACVC,iBAAkB,SAEpB,CACEpjB,MAAO,kBACPif,MAAO,wCACPgE,OAAQ,IACRC,MAAO,IACPC,SAAU,YACVC,iBAAkB,UAITC,EAAwB,CACnC,uBAAwB,CAAC,sBACzB,6BAA8B,CAAC,mBAC/B,qBAAsB,CAAC,SACvB,6BAA8B,CAAC,oBAC/B,2BAA4B,CAAC,gBAC7B,4BAA6B,CAAC,iBAC9B,yBAA0B,CAAC,cAC3B,oBAAqB,CAAC,QACtB,gCAAiC,CAAC,qBAClC,oBAAqB,CAAC,SAGXC,EAAkB,CAC7BC,eAAgB,EAChBC,KAAM,EACNC,IAAK,EACLC,MAAO,EACPC,UAAW,EACXC,iBAAkB,EAClBC,SAAU,EACVC,gBAAiB,EACjBC,kBAAmB,EACnBzE,SAAU,EACV0E,UAAW,IAGAC,EAAa,CACxBC,UAAW,EACXC,eAAgB,EAChBC,eAAgB,EAChBC,YAAa,EACbhG,QAAS,GACTiG,WAAY,GACZC,oBAAqB,GACrBC,YAAa,GACbC,eAAgB,GAChBC,MAAO,GACPC,eAAgB,GAChBC,SAAU,IAGCC,EAAajjB,OAAOuZ,OAAO,CACtC2J,OAAQ,SACRC,OAAQ,WAGGC,EAAuB,CAClCC,kBAAmB,EACnBC,oBAAqB,EACrBC,eAAgB,EAChBC,eAAgB,EAChBC,OAAQ,GAGGC,EAAsB1jB,OAAOuZ,OAAO,CAC/CoK,SAAU,EACVC,SAAU,IAGCC,EAAgB,CAC3BC,KAAM,EACNC,QAAS,GAaEC,GAVuBhkB,OAAOuZ,OAAO,CAAC,CACjD/Z,GAAIkkB,EAAoBC,SACxB9gB,KAAM,mCACN+S,KAAM,aACL,CACDpW,GAAIkkB,EAAoBE,SACxB/gB,KAAM,kCACN+S,KAAM,WAG8B,CACpCqO,MAAO,EACPC,QAAS,EACTC,SAAU,IAGCC,EAAiB,CAC5B,CACE5kB,GAAI,EACJ6kB,IAAK,2CACLjmB,MAAO,KACPkmB,aAAa,EACbC,gBAAgB,GAElB,CACE/kB,GAAI,EACJ6kB,IAAK,8BACLjmB,MAAO,KACPkmB,aAAa,EACbC,gBAAgB,GAElB,CACE/kB,GAAI,EACJ6kB,IAAK,kCACLjmB,MAAO,KACPkmB,aAAa,EACbC,gBAAgB,GAElB,CACE/kB,GAAI,EACJ6kB,IAAK,oCACLjmB,MAAO,KACPkmB,aAAa,EACbC,gBAAgB,EAChBC,aAAa,GAEf,CACEhlB,GAAI,EACJ6kB,IAAK,yCACLjmB,MAAO,KACPkmB,aAAa,EACbC,gBAAgB,IAIPE,EAAsB,CACjCC,OAAQ,EACRC,SAAU,GAGCC,EAAuB,CAClCC,sBAAuB,EACvBC,WAAY,GAGDC,EAAgB,CAC3BC,GAAI,EACJC,MAAO,E,qEC9oBT,MAAMC,EAAiBA,IAAM,4JAGvBC,EAAuB,CAC3BzhB,KAAM,iBACNe,KAAM,iBACNnG,UAAW4mB,EACX7M,KAAM,CACJC,cAAc,EACdC,MAAO,+BACPC,WAAY,iCAIhB,KACE2M,GAaK,MAAMC,EAAsBD,C,wBC5BnC,MAAM,OAAEE,GAAWC,EAAQ,OAErBC,EAAU,EACVC,EAAU,IACVC,EAAkB,GAClBC,EAAY,CAAEC,QAAS,UAAWC,SAAU,YAC5CC,EAAU,CAAEC,UAAW,YAAaC,QAAS,WAC7CC,EAAuB,EACvBC,EAAoB,GACpBC,EAAe,IACfC,EAAqB,EACrBC,EAAoB,EACpBC,EAAkB,EAClBC,EAAgB,GAChBC,EAA8B,GAC9BC,EAAa,GACbC,EAAsB,IAEtBC,EAAY,CAChBC,KAAM,EACNC,QAAS,KAELC,EAAcC,IAEdC,EAAW,CACfC,iBAAkB,MAGdC,EAAqB,CACzBC,KAAM,CACJC,IAAK,IACLC,OAAQ,IACRC,KAAM,GACNC,QAAS,KAIPC,EAA6B,CACjCL,KAAM,CACJ,CACExjB,KAAM,cACNtF,MAAO6oB,EAAmBC,KAAKC,KAEjC,CACEzjB,KAAM,iBACNtF,MAAO6oB,EAAmBC,KAAKE,QAEjC,CACE1jB,KAAM,eACNtF,MAAO6oB,EAAmBC,KAAKG,MAEjC,CACE3jB,KAAM,kBACNtF,MAAO6oB,EAAmBC,KAAKI,WAK/BE,EAAmB,CACvBC,gBAAiB,KACjBC,WAAY,IACZC,SAAU,IACVC,YAAa,IACbC,UAAW,MACXC,UAAW,EACXC,QAAS,MACTC,YAAa,KACbC,SAAU,IACVC,SAAU,MACVC,WAAY,IACZC,WAAY,IACZC,WAAY,KACZC,4BAA6B,EAC7BC,gCAAiC,EACjCC,sBAAuB,IACvBC,aAAc,IACdC,cAAe,IACfC,YAAa,aACbC,WAAY,IACZC,SAAU,MACVC,WAAY,CAAEC,KAAM,CAAEC,EAAG,IAAKC,EAAG,IAAKC,EAAG,IAAKC,EAAG,GAAKC,IAAK,WAC3DC,OAAQ,EACRC,eAAgB,uBAChBC,iBAAkB,GAClBC,uBAAwB,cACxBC,yBAA0B,IAGtBC,EAAY,CAChBC,KAAM,OACNC,MAAO,QACP1C,KAAM,OACN2C,UAAW,YACXC,QAAS,UACTC,KAAM,OACNC,gBAAiB,mBACjBC,cAAe,iBACfC,oBAAqB,wBACrBC,kBAAmB,sBACnBC,OAAQ,SACRC,MAAO,QACPC,WAAY,aACZC,MAAO,QACPC,cAAe,iBACfxP,KAAM,QAGFyP,EAAY,CAChBC,MAAO,QACPC,OAAQ,SACRC,IAAK,OAGDC,EAAsB,CAC1BC,OAAQ,SACRC,QAAS,WAGLC,EAAY,sBAEZC,EAAyB,CAC7BP,MAAO,CACL,CAAEhnB,KAAMgmB,EAAUC,MAClB,CAAEjmB,KAAMgmB,EAAUO,eAClB,CAAEvmB,KAAMgmB,EAAUS,mBAClB,CAAEzmB,KAAMgmB,EAAUW,OAClB,CAAE3mB,KAAMgmB,EAAUY,YAClB,CAAE5mB,KAAMgmB,EAAU1O,OAEpB2P,OAAQ,CACN,CAAEjnB,KAAMgmB,EAAUE,OAClB,CAAElmB,KAAMgmB,EAAUI,SAClB,CAAEpmB,KAAMgmB,EAAUG,WAClB,CAAEnmB,KAAMgmB,EAAU1O,OAEpB4P,IAAK,CACH,CAAElnB,KAAMgmB,EAAUC,MAClB,CAAEjmB,KAAMgmB,EAAUO,eAClB,CAAEvmB,KAAMgmB,EAAUS,mBAClB,CAAEzmB,KAAMgmB,EAAUW,OAClB,CAAE3mB,KAAMgmB,EAAUY,YAClB,CAAE5mB,KAAMgmB,EAAU1O,QAIhBkQ,EAAiB,CACrB,CAAC7F,EAAO8F,OAAQ,CACdT,MAAO,CACL,CAAEhnB,KAAMgmB,EAAUC,MAClB,CAAEjmB,KAAMgmB,EAAUO,eAClB,CAAEvmB,KAAMgmB,EAAUM,iBAClB,CAAEtmB,KAAMgmB,EAAUS,mBAClB,CAAEzmB,KAAMgmB,EAAUQ,qBAClB,CAAExmB,KAAMgmB,EAAUU,QAClB,CAAE1mB,KAAMgmB,EAAUW,OAClB,CAAE3mB,KAAMgmB,EAAUa,OAClB,CAAE7mB,KAAMgmB,EAAUc,eAClB,CAAE9mB,KAAMgmB,EAAU1O,OAEpB2P,OAAQ,CACN,CAAEjnB,KAAMgmB,EAAUE,OAClB,CAAElmB,KAAMgmB,EAAUxC,MAClB,CAAExjB,KAAMgmB,EAAUI,SAClB,CAAEpmB,KAAMgmB,EAAUG,WAClB,CAAEnmB,KAAMgmB,EAAUK,MAClB,CAAErmB,KAAMgmB,EAAU1O,OAEpB4P,IAAK,CACH,CAAElnB,KAAMgmB,EAAUC,MAClB,CAAEjmB,KAAMgmB,EAAUO,eAClB,CAAEvmB,KAAMgmB,EAAUM,iBAClB,CAAEtmB,KAAMgmB,EAAUS,mBAClB,CAAEzmB,KAAMgmB,EAAUQ,qBAClB,CAAExmB,KAAMgmB,EAAUU,QAClB,CAAE1mB,KAAMgmB,EAAUW,OAClB,CAAE3mB,KAAMgmB,EAAUa,OAClB,CAAE7mB,KAAMgmB,EAAUc,eAClB,CAAE9mB,KAAMgmB,EAAU1O,QAGtB,CAACqK,EAAO+F,QAASH,EACjB,CAAC5F,EAAOgG,MAAOJ,EACf,CAAC5F,EAAOiG,MAAOL,GAGXM,EAAkB,CACtB,CACEC,WAAYhE,EAAiBmB,YAC7B8C,KAAM,SACN7oB,KAAM,QAER,CACE4oB,WAAY,aACZC,KAAM,YACN7oB,KAAM,MAER,CACE4oB,WAAY,cACZC,KAAM,YACN7oB,KAAM,OAER,CACE4oB,WAAY,gBACZC,KAAM,YACN7oB,KAAM,SAER,CACE4oB,WAAY,cACZC,KAAM,QACN7oB,KAAM,MAER,CACE4oB,WAAY,eACZC,KAAM,QACN7oB,KAAM,OAER,CACE4oB,WAAY,iBACZC,KAAM,QACN7oB,KAAM,SAER,CACE4oB,WAAY,cACZC,KAAM,UACN7oB,KAAM,MAER,CACE4oB,WAAY,eACZC,KAAM,UACN7oB,KAAM,OAER,CACE4oB,WAAY,iBACZC,KAAM,UACN7oB,KAAM,SAER,CACE4oB,WAAY,cACZC,KAAM,UACN7oB,KAAM,MAER,CACE4oB,WAAY,eACZC,KAAM,UACN7oB,KAAM,OAER,CACE4oB,WAAY,iBACZC,KAAM,UACN7oB,KAAM,SAER,CACE4oB,WAAY,aACZC,KAAM,aACN7oB,KAAM,MAER,CACE4oB,WAAY,cACZC,KAAM,aACN7oB,KAAM,OAER,CACE4oB,WAAY,gBACZC,KAAM,aACN7oB,KAAM,SAER,CACE4oB,WAAY,aACZC,KAAM,cACN7oB,KAAM,MAER,CACE4oB,WAAY,cACZC,KAAM,cACN7oB,KAAM,OAER,CACE4oB,WAAY,gBACZC,KAAM,cACN7oB,KAAM,SAER,CACE4oB,WAAY,aACZC,KAAM,WACN7oB,KAAM,MAER,CACE4oB,WAAY,cACZC,KAAM,WACN7oB,KAAM,OAER,CACE4oB,WAAY,gBACZC,KAAM,WACN7oB,KAAM,SAER,CACE4oB,WAAY,cACZC,KAAM,QACN7oB,KAAM,MAER,CACE4oB,WAAY,eACZC,KAAM,QACN7oB,KAAM,OAER,CACE4oB,WAAY,iBACZC,KAAM,QACN7oB,KAAM,SAER,CACE4oB,WAAY,gBACZC,KAAM,UACN7oB,KAAM,MAER,CACE4oB,WAAY,iBACZC,KAAM,UACN7oB,KAAM,OAER,CACE4oB,WAAY,mBACZC,KAAM,UACN7oB,KAAM,SAER,CACE4oB,WAAY,aACZC,KAAM,OACN7oB,KAAM,MAER,CACE4oB,WAAY,cACZC,KAAM,OACN7oB,KAAM,OAER,CACE4oB,WAAY,gBACZC,KAAM,OACN7oB,KAAM,S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BACA,uBAEF,CAACw3B,EAAOE,QAAS,CACf,yBACA,cACA,4BACA,iCACA,kCACA,0CACA,6BACA,qCACA,yBACA,0BACA,sCACA,qCACA,sCACA,qCACA,8CACA,6CACA,wCACA,wCACA,+BACA,2BACA,mCACA,6BAEF,CAACF,EAAOnE,OAAQ,CACd,yBACA,cACA,aACA,eACA,sBACA,qBACA,qBACA,4BACA,4BACA,0BACA,oBACA,2BAEF,CAACmE,EAAOI,OAAQ,CACd,yBACA,cACA,sBACA,qBACA,qBACA,oBACA,kBACA,mBACA,mBACA,qBACA,oBACA,qBACA,iBACA,iBACA,oBAEF,CAACJ,EAAO5J,OAAQ,CACd,yBACA,cACA,aACA,sBACA,qBACA,qBACA,qBAEF,CAAC4J,EAAOvI,OAAQ,CACd,yBACA,cAEF,CAACuI,EAAOC,YAAa,CACnB,yBACA,cACA,mBAEF,CAACD,EAAOG,QAAS,CACf,yBACA,gBAIJt6B,EAAOC,QAAU,CACfk6B,SACAQ,aACAC,cACAC,eACAE,gBACAC,iBACAM,6BACAC,2BACAC,0BACAC,0BACAC,aACAE,2BACAC,+B,oBC7OF,MAAM5D,EAASn4B,OAAOuZ,OAAO,CAC3B,CACE/Z,GAAI,EACJkE,KAAM,2BACNe,KAAM,0CAER,CACEjF,GAAI,EACJkE,KAAM,2BACNe,KAAM,6HAER,CACEjF,GAAI,EACJkE,KAAM,wBACNe,KAAM,gCAER,CACEjF,GAAI,EACJkE,KAAM,wBACNe,KAAM,2HAER,CACEjF,GAAI,EACJkE,KAAM,sBACNe,KAAM,uDAER,CACEjF,GAAI,EACJkE,KAAM,oBACNe,KAAM,uDAER,CACEjF,GAAI,EACJkE,KAAM,0BACNe,KAAM,iCAER,CACEjF,GAAI,EACJkE,KAAM,0BACNe,KAAM,kLAER,CACEjF,GAAI,EACJkE,KAAM,0BACNe,KAAM,gCAER,CACEjF,GAAI,GACJkE,KAAM,yBACNe,KAAM,gEAER,CACEjF,GAAI,GACJkE,KAAM,yBACNe,KAAM,sEAER,CACEjF,GAAI,GACJkE,KAAM,yBACNe,KAAM,oFAER,CACEjF,GA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,KACA,MAEF,CACE,iCACA,KACA,OAEF,CACE,yBACA,KACA,QAEF,CACE,SACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,SACA,KACA,IACA,EACA,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAElS,CACE,0BACA,KACA,OAEF,CACE,wBACA,KACA,MACA,GAEF,CACE,iBACA,KACA,QAEF,CACE,uDACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,QACA,KACA,MAEF,CACE,aACA,KACA,MAEF,CACE,mBACA,KACA,KACA,GAEF,CACE,0BACA,KACA,KACA,GAEF,CACE,WACA,KACA,MAEF,CACE,yBACA,KACA,OAEF,CACE,iDACA,KACA,OAEF,CACE,uCACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,OACA,KACA,MAEF,CACE,UACA,KACA,MACA,GAEF,CACE,kBACA,KACA,OAEF,CACE,mCACA,KACA,OAEF,CACE,oBACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,WACA,KACA,QAEF,CACE,4CACA,KACA,IACA,EACA,CAAC,MAAO,MAAO,QAEjB,CACE,UACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,cACA,KACA,OAEF,CACE,wCACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,oCACA,KACA,OAEF,CACE,0BACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,kBACA,KACA,MACA,GAEF,CACE,SACA,KACA,MAEF,CACE,mCACA,KACA,OAEF,CACE,yCACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,wBACA,KACA,MAEF,CACE,gBACA,KACA,OAEF,CACE,YACA,KACA,OAEF,CACE,kBACA,KACA,MAEF,CACE,+BACA,KACA,OAEF,CACE,UACA,KACA,QAEF,CACE,aACA,KACA,MACA,GAEF,CACE,OACA,KACA,QAEF,CACE,YACA,KACA,OAEF,CACE,WACA,KACA,KACA,GAEF,CACE,kBACA,KACA,OAEF,CACE,+BACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,iBACA,KACA,OAEF,CACE,yBACA,KACA,MAEF,CACE,mBACA,KACA,OAEF,CACE,eACA,KACA,MAEF,CACE,YACA,KACA,MAEF,CACE,kBACA,KACA,MAEF,CACE,mBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,cACA,KACA,KACA,GAEF,CACE,oBACA,KACA,OAEF,CACE,iBACA,KACA,KACA,GAEF,CACE,UACA,KACA,QAEF,CACE,aACA,KACA,MAEF,CACE,SACA,KACA,KACA,GAEF,CACE,qBACA,KACA,OAEF,CACE,yBACA,KACA,IACA,GAEF,CACE,QACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,0BACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,iCACA,KACA,OAEF,CACE,4BACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,WACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,4BACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,UACA,KACA,MACA,GAEF,CACE,kBACA,KACA,MAEF,CACE,aACA,KACA,OAEF,CACE,8BACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,yBACA,KACA,OAEF,CACE,aACA,KACA,QAEF,CACE,sBACA,KACA,MACA,GAEF,CACE,0BACA,KACA,OAEF,CACE,2BACA,KACA,MAEF,CACE,oBACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,0BACA,KACA,MAEF,CACE,qCACA,KACA,OAEF,CACE,cACA,KACA,MAEF,CACE,YACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,iBACA,KACA,OAEF,CACE,+BACA,KACA,OAEF,CACE,2BACA,KACA,QAEF,CACE,iBACA,KACA,KACA,GAEF,CACE,kBACA,KACA,OAEF,CACE,wBACA,KACA,MAEF,CACE,QACA,KACA,OAEF,CACE,wBACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,cACA,KACA,MAEF,CACE,cACA,KACA,MAEF,CACE,kBACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,cACA,KACA,IACA,EACA,CAAC,MAAO,QAEV,CACE,iBACA,KACA,OAEF,CACE,uBACA,KACA,MACA,GAEF,CACE,oBACA,KACA,MAEF,CACE,kBACA,KACA,IACA,GAEF,CACE,SACA,KACA,OAEF,CACE,mBACA,KACA,MACA,GAEF,CACE,eACA,KACA,OAEF,CACE,wBACA,KACA,QAEF,CACE,cACA,KACA,QAEF,CACE,iDACA,KACA,MACA,GAEF,CACE,uDACA,KACA,OAEF,CACE,mCACA,KACA,QAEF,CACE,QACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,8CACA,KACA,OAEF,CACE,6CACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,YACA,KACA,MAEF,CACE,eACA,KACA,QAEF,CACE,uBACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,eACA,KACA,MAEF,CACE,qBACA,KACA,MAEF,CACE,gCACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,0BACA,KACA,MAEF,CACE,qBACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,yBACA,KACA,KACA,GAEF,CACE,YACA,KACA,OAEF,CACE,mBACA,KACA,MAEF,CACE,wBACA,KACA,MAEF,CACE,mBACA,KACA,OAEF,CACE,cACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,cACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,sBACA,KACA,QAEF,CACE,oBACA,KACA,OAEF,CACE,mBACA,KACA,MAEF,CACE,eACA,KACA,OAEF,CACE,2BACA,KACA,QAEF,CACE,SACA,KACA,OAEF,CACE,sBACA,KACA,QAEF,CACE,SACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,qDACA,KACA,OAEF,CACE,iBACA,KACA,KACA,GAEF,CACE,gBACA,KACA,IACA,GAEF,CACE,UACA,KACA,OAEF,CACE,2BACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,oCACA,KACA,KACA,GAEF,CACE,YACA,KACA,MAEF,CACE,qBACA,KACA,MAEF,CACE,uCACA,KACA,OAEF,CACE,sCACA,KACA,MACA,GAEF,CACE,mBACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,g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","sources":["webpack://roimatic.web/./src/components/AppCard/AppCard.vue?9d2e","webpack://roimatic.web/./src/components/AppCard/AppCardHeading.vue?81e8","webpack://roimatic.web/src/components/AppCard/AppCardHeading.vue","webpack://roimatic.web/./src/components/AppCard/AppCardHeading.vue?db55","webpack://roimatic.web/./src/components/AppCard/AppCardHeading.vue","webpack://roimatic.web/./src/components/AppCard/AppCardFooter.vue?7d1f","webpack://roimatic.web/src/components/AppCard/AppCardFooter.vue","webpack://roimatic.web/./src/components/AppCard/AppCardFooter.vue?1e74","webpack://roimatic.web/./src/components/AppCard/AppCardFooter.vue","webpack://roimatic.web/./src/components/AppCard/AppCardContent.vue?e60a","webpack://roimatic.web/src/components/AppCard/AppCardContent.vue","webpack://roimatic.web/./src/components/AppCard/AppCardContent.vue?4426","webpack://roimatic.web/./src/components/AppCard/AppCardContent.vue","webpack://roimatic.web/src/components/AppCard/AppCard.vue","webpack://roimatic.web/./src/components/AppCard/AppCard.vue?476c","webpack://roimatic.web/./src/components/AppCard/AppCard.vue","webpack://roimatic.web/./src/components/AppSectionLoader/AppSectionLoader.vue?cda2","webpack://roimatic.web/src/components/AppSectionLoader/AppSectionLoader.vue","webpack://roimatic.web/./src/components/AppSectionLoader/AppSectionLoader.vue?d393","webpack://roimatic.web/./src/components/AppSectionLoader/AppSectionLoader.vue","webpack://roimatic.web/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://roimatic.web/./src/api/apiErrorCodes.js","webpack://roimatic.web/./src/errors/StripeError.js","webpack://roimatic.web/./src/errors/CampaignStatusUpdateError.js","webpack://roimatic.web/./src/errors/AuthorizationCodeInvalidException.js","webpack://roimatic.web/./src/errors/AuthorizationCodeExpiredException.js","webpack://roimatic.web/./src/api/apiErrorHandler.js","webpack://roimatic.web/./src/api/index.js","webpack://roimatic.web/./src/appServices/appService.js","webpack://roimatic.web/./src/appServices/authService.js","webpack://roimatic.web/./src/appServices/hqLocalApiService.js","webpack://roimatic.web/./src/appServices/roimaticService.js","webpack://roimatic.web/./src/constants/AppConfig.js","webpack://roimatic.web/./src/constants/Languages.js","webpack://roimatic.web/./src/constants/SettingsType.js","webpack://roimatic.web/./src/constants/loginProviderTypes.js","webpack://roimatic.web/./src/constants/storeTypes.js","webpack://roimatic.web/./src/constants/userRoles.js","webpack://roimatic.web/./src/errors/CampaignAlreadyExistsException.js","webpack://roimatic.web/./src/errors/EmailAlreadyVerifiedError.js","webpack://roimatic.web/./src/errors/EntityAlreadyExistsError.js","webpack://roimatic.web/./src/errors/EntityDoesNotExistException.js","webpack://roimatic.web/./src/errors/EntityNotFoundInCacheError.js","webpack://roimatic.web/./src/errors/ForbiddenPortalRequested.js","webpack://roimatic.web/./src/errors/InvalidAccessTokenError.js","webpack://roimatic.web/./src/errors/InvalidHashkeyRequested.js","webpack://roimatic.web/./src/errors/InvalidLoginCredentials.js","webpack://roimatic.web/./src/errors/InvalidPortalRequestException.js","webpack://roimatic.web/./src/errors/InvalidRequestDataException.js","webpack://roimatic.web/./src/errors/OldPasswordException.js","webpack://roimatic.web/./src/errors/PasswordExpiredError.js","webpack://roimatic.web/./src/errors/ReviewManagementConfigurationError.js","webpack://roimatic.web/./src/errors/ShortCodeAlreadyExistsException.js","webpack://roimatic.web/./src/errors/UserAccountExpiredException.js","webpack://roimatic.web/./src/features/addons/router.js","webpack://roimatic.web/./src/features/briefs/router.js","webpack://roimatic.web/./src/features/campaignLaunch/constants.js","webpack://roimatic.web/./src/features/campaignLaunch/router.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/animation.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/audio.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/commonData.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/gridLayout.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/image.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/layers.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/shapes.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/textStyles.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/variables.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/constants/variants.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/Utils.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/commonHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/commonMediaHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/ffmpegHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/gridLayoutHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/multipleSourcesHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/objectSizingHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/runtimeHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/helpers/timelineHelper.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/prototypes/array.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/prototypes/index.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/services/api.js","webpack://roimatic.web/./src/features/creativeBuilder/externalTools/services/googleTextToSpeechService.js","webpack://roimatic.web/./src/features/dashboard/router.js","webpack://roimatic.web/./src/features/embed/router.js","webpack://roimatic.web/./src/features/forgotPassword/router.js","webpack://roimatic.web/./src/features/localBusiness/router.js","webpack://roimatic.web/./src/features/login/router.js","webpack://roimatic.web/./src/features/oauthRedirect/router.js","webpack://roimatic.web/./src/features/onboarding/constants.js","webpack://roimatic.web/./src/features/productFeed/services/apiService.js","webpack://roimatic.web/./src/features/publishedReports/router.js","webpack://roimatic.web/./src/features/richMediaAdShowcase/router.js","webpack://roimatic.web/./src/features/userEmailVerification/router.js","webpack://roimatic.web/./src/helpers/affiliateUserHelper.js","webpack://roimatic.web/./src/helpers/brandPortalHelper.js","webpack://roimatic.web/./src/helpers/businessProfilesHelper.js","webpack://roimatic.web/./src/helpers/helpers.js","webpack://roimatic.web/./src/lang/messages.js","webpack://roimatic.web/./src/numberFormats/index.js","webpack://roimatic.web/./src/lang/index.js","webpack://roimatic.web/./src/components/PageTitleBar/ThePageTitleBar.vue?2316","webpack://roimatic.web/src/components/PageTitleBar/ThePageTitleBar.vue","webpack://roimatic.web/./src/components/PageTitleBar/ThePageTitleBar.vue?7049","webpack://roimatic.web/./src/components/PageTitleBar/ThePageTitleBar.vue","webpack://roimatic.web/./src/globalComponents.js","webpack://roimatic.web/./src/App.vue?e4c2","webpack://roimatic.web/src/App.vue","webpack://roimatic.web/./src/App.vue?c036","webpack://roimatic.web/./src/App.vue","webpack://roimatic.web/./src/plugins/VueTelInput/lib/vue-tel-input-vuetify.vue?b708","webpack://roimatic.web/./src/plugins/VueTelInput/lib/all-countries.js","webpack://roimatic.web/./src/plugins/VueTelInput/lib/utils.js","webpack://roimatic.web/src/plugins/VueTelInput/lib/vue-tel-input-vuetify.vue","webpack://roimatic.web/./src/plugins/VueTelInput/lib/vue-tel-input-vuetify.vue?ddf3","webpack://roimatic.web/./src/plugins/VueTelInput/lib/vue-tel-input-vuetify.vue","webpack://roimatic.web/./src/plugins/VueTelInput/lib/plugin.js","webpack://roimatic.web/./src/components/MaterialIcon/MaterialIcon.vue?51ad","webpack://roimatic.web/src/components/MaterialIcon/MaterialIcon.vue","webpack://roimatic.web/./src/components/MaterialIcon/MaterialIcon.vue?3159","webpack://roimatic.web/./src/components/MaterialIcon/MaterialIcon.vue","webpack://roimatic.web/./src/bugsnagConfig.js","webpack://roimatic.web/./src/assets/icons/icons.js","webpack://roimatic.web/./src/registerServiceWorker.js","webpack://roimatic.web/./src/globalRouterGuard.js","webpack://roimatic.web/./src/main.js","webpack://roimatic.web/./src/router/affiliateRouter.js","webpack://roimatic.web/./src/features/faq/router.js","webpack://roimatic.web/./src/features/helpArticles/router.js","webpack://roimatic.web/./src/features/adhocQueryReports/router.js","webpack://roimatic.web/./src/features/assets/router.js","webpack://roimatic.web/./src/features/audience/router.js","webpack://roimatic.web/./src/features/briefPlan/router.js","webpack://roimatic.web/./src/features/businessCategorySelection/router.js","webpack://roimatic.web/./src/features/cbRenderer/router.js","webpack://roimatic.web/./src/features/creativeBuilder/router.js","webpack://roimatic.web/./src/features/home/router.js","webpack://roimatic.web/./src/features/inviteUser/router.js","webpack://roimatic.web/./src/features/mediaDataUpload/router.js","webpack://roimatic.web/./src/features/trackingLink/router.js","webpack://roimatic.web/./src/features/onboarding/router.js","webpack://roimatic.web/./src/features/organicPromotionLaunch/router.js","webpack://roimatic.web/./src/features/wallet/router.js","webpack://roimatic.web/./src/features/postbackUrl/router.js","webpack://roimatic.web/./src/features/productFeed/router.js","webpack://roimatic.web/./src/features/productInsights/router.js","webpack://roimatic.web/./src/features/promotions/router.js","webpack://roimatic.web/./src/features/reviewManagement/router.js","webpack://roimatic.web/./src/features/richMediaAdBuilder/router.js","webpack://roimatic.web/./src/features/richMediaAdPreview/router.js","webpack://roimatic.web/./src/features/signup/router.js","webpack://roimatic.web/./src/features/storeSetup/router.js","webpack://roimatic.web/./src/features/advancedInsights/router.js","webpack://roimatic.web/./src/router/index.js","webpack://roimatic.web/./src/router/pageNotFound.js","webpack://roimatic.web/./src/errors/loginError.js","webpack://roimatic.web/./src/store/modules/auth/index.js","webpack://roimatic.web/./src/themes/defaultTheme.js","webpack://roimatic.web/./src/store/modules/settings/data.js","webpack://roimatic.web/./src/store/modules/settings/index.js","webpack://roimatic.web/./src/store/modules/sidebar/data.js","webpack://roimatic.web/./src/store/modules/sidebar/index.js","webpack://roimatic.web/./src/store/modules/dateRangeSettings/index.js","webpack://roimatic.web/./src/store/modules/appDialogLoader/index.js","webpack://roimatic.web/./src/features/wallet/store/index.js","webpack://roimatic.web/./src/store/modules/roimaticConfiguration/index.js","webpack://roimatic.web/./src/store/modules/featureSettings/data.js","webpack://roimatic.web/./src/store/modules/featureSettings/index.js","webpack://roimatic.web/./src/store/store.js","webpack://roimatic.web/webpack/bootstrap","webpack://roimatic.web/webpack/runtime/amd options","webpack://roimatic.web/webpack/runtime/chunk loaded","webpack://roimatic.web/webpack/runtime/compat get default export","webpack://roimatic.web/webpack/runtime/define property getters","webpack://roimatic.web/webpack/runtime/ensure chunk","webpack://roimatic.web/webpack/runtime/get javascript chunk filename","webpack://roimatic.web/webpack/runtime/get mini-css chunk filename","webpack://roimatic.web/webpack/runtime/global","webpack://roimatic.web/webpack/runtime/harmony module decorator","webpack://roimatic.web/webpack/runtime/hasOwnProperty shorthand","webpack://roimatic.web/webpack/runtime/load script","webpack://roimatic.web/webpack/runtime/make namespace object","webpack://roimatic.web/webpack/runtime/node module decorator","webpack://roimatic.web/webpack/runtime/publicPath","webpack://roimatic.web/webpack/runtime/css loading","webpack://roimatic.web/webpack/runtime/jsonp chunk loading","webpack://roimatic.web/webpack/startup"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex\",class:[_vm.containerClasses]},[_c('div',{staticClass:\"app-card\",class:[_vm.customClasses, { 'd-none': _vm.close }]},[(_vm.header)?_c('app-card-heading',{attrs:{\"custom-classes\":_vm.headerClasses}},[_vm._t(\"header\")],2):_vm._e(),_c('app-card-content',{attrs:{\"extra-class\":[_vm.contentCustomClass],\"full-block\":_vm.fullBlock}},[_vm._t(\"body\")],2),(_vm.footer)?_c('app-card-footer',{attrs:{\"custom-classes\":_vm.footerClasses}},[_vm._t(\"footer\")],2):_vm._e(),_c('app-section-loader',{attrs:{\"status\":_vm.reload}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-card-title\",class:[_vm.customClasses]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCardHeading.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCardHeading.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppCardHeading.vue?vue&type=template&id=4cd25740\"\nimport script from \"./AppCardHeading.vue?vue&type=script&lang=js\"\nexport * from \"./AppCardHeading.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-footer\",class:[_vm.customClasses]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCardFooter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCardFooter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppCardFooter.vue?vue&type=template&id=47e87c98\"\nimport script from \"./AppCardFooter.vue?vue&type=script&lang=js\"\nexport * from \"./AppCardFooter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-card-content\",class:[_vm.extraClass]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCardContent.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCardContent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppCardContent.vue?vue&type=template&id=1b4a3262\"\nimport script from \"./AppCardContent.vue?vue&type=script&lang=js\"\nexport * from \"./AppCardContent.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppCard.vue?vue&type=template&id=d6efc0bc\"\nimport script from \"./AppCard.vue?vue&type=script&lang=js\"\nexport * from \"./AppCard.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.status)?_c('div',{staticClass:\"loader-overlay\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppSectionLoader.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppSectionLoader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppSectionLoader.vue?vue&type=template&id=b1108a3a\"\nimport script from \"./AppSectionLoader.vue?vue&type=script&lang=js\"\nexport * from \"./AppSectionLoader.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 82705,\n\t\"./ar-sa.js\": 82705,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 51894,\n\t\"./en-au.js\": 51894,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","export const errorCodes = {\r\n InvalidHashkeyRequested: 60,\r\n EntityAlreadyExistsError: 101,\r\n EntityDoesNotExistException: 104,\r\n MediaPlanStatusUpdateFailedException: 110,\r\n NoCampaignsLinkedException: 111,\r\n StripeException: 201,\r\n EntityNotFoundInCacheException: 308,\r\n InvalidLoginCredentials: 51,\r\n ForbiddenPortalRequested: 56,\r\n ForbiddenBusinessProfileRequested: 113,\r\n InvalidPortalRequestedException: 55,\r\n InvalidBusinessProfileRequested: 112,\r\n Unauthorized: 401,\r\n TokenMalformedException: 61,\r\n TokenExpiredException: 62,\r\n TokenInvalidException: 63,\r\n InvalidRequestDataException: 102,\r\n UserAccountExpiredException: 52,\r\n EmailAlreadyVerifiedError: 65,\r\n ReviewManagementConfigurationError: 1204,\r\n CampaignAlreadyExistsException: 1501,\r\n ShortCodeAlreadyExistsException: 1502,\r\n AuthorizationCodeInvalidException: 80,\r\n AuthorizationCodeExpiredException: 81,\r\n PasswordExpiredException: 74,\r\n OldPasswordException: 75,\r\n RefreshTokenExpiredException: 76\r\n};\r\n","export class StripeError extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class CampaignStatusUpdateError extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class AuthorizationCodeInvalidException extends Error {\r\n constructor(message) {\r\n super('Authentication through google failed. Please try again.');\r\n }\r\n}","export class AuthorizationCodeExpiredException extends Error {\r\n constructor(message) {\r\n super('Authentication through google failed. Please try again.');\r\n }\r\n}","import Vue from 'vue';\r\nimport Bugsnag from '@bugsnag/js';\r\nimport { errorCodes } from './apiErrorCodes';\r\nimport { EntityAlreadyExistsError } from 'GlobalErrors/EntityAlreadyExistsError';\r\nimport { EntityNotFoundInCacheError } from 'GlobalErrors/EntityNotFoundInCacheError';\r\nimport { StripeError } from 'GlobalErrors/StripeError';\r\nimport { InvalidPasswordError } from 'GlobalErrors/InvalidPasswordError';\r\nimport { InvalidPortalRequestedException } from 'GlobalErrors/InvalidPortalRequestException';\r\nimport { InvalidHashkeyRequested } from '../errors/InvalidHashkeyRequested';\r\nimport { EmailAlreadyVerifiedError } from '../errors/EmailAlreadyVerifiedError';\r\nimport { EntityDoesNotExistException } from '../errors/EntityDoesNotExistException';\r\nimport { CampaignStatusUpdateError } from '../errors/CampaignStatusUpdateError';\r\nimport { InvalidAccessTokenError } from '../errors/InvalidAccessTokenError';\r\nimport { InvalidLoginCredentials } from 'GlobalErrors/InvalidLoginCredentials';\r\nimport { ForbiddenPortalRequested } from 'GlobalErrors/ForbiddenPortalRequested';\r\nimport { InvalidRequestDataException } from '../errors/InvalidRequestDataException';\r\nimport { ReviewManagementConfigurationError } from '../errors/ReviewManagementConfigurationError';\r\nimport Router from '../router';\r\nimport { LoginRoute } from 'Features/login/router.js';\r\nimport { ForgotPasswordRouteObjects } from '../features/forgotPassword/router';\r\nimport { UserAccountExpiredException } from 'GlobalErrors/UserAccountExpiredException';\r\nimport { i18n } from '@/lang/'\r\nimport { PageNotFoundRoute } from '../router/pageNotFound';\r\nimport { CampaignAlreadyExistsException } from '../errors/CampaignAlreadyExistsException';\r\nimport { ShortCodeAlreadyExistsException } from '../errors/ShortCodeAlreadyExistsException.js';\r\nimport { store } from 'Store/store';\r\nimport { AuthorizationCodeInvalidException } from '../errors/AuthorizationCodeInvalidException.js';\r\nimport { AuthorizationCodeExpiredException } from '../errors/AuthorizationCodeExpiredException.js';\r\nimport { PasswordExpiredError } from '../errors/PasswordExpiredError.js';\r\nimport { OldPasswordException } from '../errors/OldPasswordException.js';\r\n\r\nvar notifyError = function (error) {\r\n if (error && error.response && error.response.data && error.response.data.message) {\r\n Bugsnag.notify(new Error(error.response.data.message));\r\n } else {\r\n Bugsnag.notify(error);\r\n }\r\n Vue.notify({\r\n group: 'transientErrors',\r\n type: 'error',\r\n text: i18n.tc('message.somethingWentWrong')\r\n });\r\n};\r\n\r\nconst unauthenticatedApiEndpoints = ['/v1.0/portals'];\r\n\r\nexport async function handleError(error) {\r\n if (\r\n error &&\r\n error.response &&\r\n (error.response.data ||\r\n error.response.status === errorCodes.Unauthorized)\r\n ) {\r\n var errorCode =\r\n error.response.data.errorCode === undefined\r\n ? error.response.status\r\n : error.response.data.errorCode;\r\n switch (errorCode) {\r\n case errorCodes.EntityAlreadyExistsError:\r\n return Promise.reject(new EntityAlreadyExistsError(error)); // do not notify error in case of error code 101\r\n case errorCodes.StripeException:\r\n return Promise.reject(\r\n new StripeError(error.response.data.message)\r\n );\r\n case errorCodes.InvalidRequestDataException:\r\n return Promise.reject(new InvalidRequestDataException(error));\r\n case errorCodes.InvalidHashkeyRequested:\r\n return Promise.reject(new InvalidHashkeyRequested(error));\r\n case errorCodes.EmailAlreadyVerifiedError:\r\n return Promise.reject(new EmailAlreadyVerifiedError(error));\r\n case errorCodes.EntityDoesNotExistException:\r\n return Promise.reject(new EntityDoesNotExistException(error));\r\n case errorCodes.UserAccountExpiredException:\r\n return Promise.reject(new UserAccountExpiredException(error));\r\n case errorCodes.InvalidPortalRequestedException:\r\n if (\r\n Router.currentRoute.name ===\r\n ForgotPasswordRouteObjects.forgotPassword.name\r\n ) {\r\n return Promise.reject(\r\n new InvalidPortalRequestedException(error)\r\n );\r\n }\r\n else {\r\n invalidRoute(error);\r\n }\r\n return Promise.reject();\r\n case errorCodes.InvalidLoginCredentials:\r\n if (Router.currentRoute.name === LoginRoute.name) {\r\n return Promise.reject(new InvalidLoginCredentials(error));\r\n } else {\r\n invalidRoute(error);\r\n }\r\n return Promise.reject();\r\n case errorCodes.ForbiddenPortalRequested:\r\n if (Router.currentRoute.name === LoginRoute.name) {\r\n return Promise.reject(new ForbiddenPortalRequested(error));\r\n } else {\r\n invalidRoute(error);\r\n }\r\n return Promise.reject();\r\n case errorCodes.ForbiddenBusinessProfileRequested:\r\n case errorCodes.InvalidBusinessProfileRequested:\r\n case errorCodes.Unauthorized:\r\n case errorCodes.TokenMalformedException:\r\n case errorCodes.TokenInvalidException:\r\n case errorCodes.TokenExpiredException:\r\n case errorCodes.RefreshTokenExpiredException:\r\n invalidRoute(error);\r\n return Promise.reject(new InvalidAccessTokenError(error));\r\n case errorCodes.EntityNotFoundInCacheException:\r\n return Promise.reject(new EntityNotFoundInCacheError(error));\r\n case errorCodes.MediaPlanStatusUpdateFailedException:\r\n case errorCodes.NoCampaignsLinkedException:\r\n return Promise.reject(new CampaignStatusUpdateError(error));\r\n case errorCodes.ReviewManagementConfigurationError:\r\n return Promise.reject(new ReviewManagementConfigurationError(error));\r\n case errorCodes.CampaignAlreadyExistsException:\r\n return Promise.reject(new CampaignAlreadyExistsException(error));\r\n case errorCodes.ShortCodeAlreadyExistsException:\r\n return Promise.reject(new ShortCodeAlreadyExistsException(error));\r\n case errorCodes.AuthorizationCodeInvalidException:\r\n return Promise.reject(new AuthorizationCodeInvalidException(error));\r\n case errorCodes.AuthorizationCodeExpiredException:\r\n return Promise.reject(new AuthorizationCodeExpiredException(error));\r\n case errorCodes.PasswordExpiredException:\r\n return Promise.reject(new PasswordExpiredError(error));\r\n case errorCodes.OldPasswordException:\r\n return Promise.reject(new OldPasswordException(error));\r\n default:\r\n notifyError(error);\r\n return Promise.reject(error);\r\n }\r\n } else if (error) {\r\n notifyError(error);\r\n return Promise.reject(error);\r\n }\r\n else {\r\n notifyError('An unknown error has occurred');\r\n return Promise.reject();\r\n }\r\n}\r\n\r\nfunction invalidRoute(error) {\r\n let requestUrl = error && error.config && error.config.url;\r\n if(requestUrl && unauthenticatedApiEndpoints.includes(requestUrl)){\r\n // fallback to avoid indefinite redirect\r\n Router.push({\r\n name: PageNotFoundRoute.name,\r\n params: [Router.currentRoute.path], // https://github.com/vuejs/vue-router/issues/724#issuecomment-663315290\r\n replace: true\r\n });\r\n return;\r\n }\r\n\r\n store.dispatch('setUser', null);\r\n localStorage.removeItem('accessToken');\r\n localStorage.removeItem('user');\r\n let redirectPath = '/profileSelection';\r\n // handling cases where currentRoute's fullPath is the rootlevel route '/' (which points to nothing)\r\n // In such cases check if any pending routes Or set redirect as profileSelection\r\n if (Router.currentRoute.fullPath && Router.currentRoute.fullPath != '/'){\r\n redirectPath = Router.currentRoute.fullPath;\r\n } else if (Router.history && Router.history.pending && Router.history.pending.fullPath && Router.history.pending.fullPath != '/') {\r\n redirectPath = Router.history.pending.fullPath;\r\n }\r\n if (Router.currentRoute.name != LoginRoute.name) {\r\n Router.push({\r\n name: LoginRoute.name,\r\n query: {\r\n redirect: redirectPath\r\n }\r\n });\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { stringify } from 'qs';\r\nimport { handleError } from './apiErrorHandler'\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.VUE_APP_API_URL,\r\n paramsSerializer: function (params) {\r\n return stringify(params, { arrayFormat: 'indices', allowDots: true })\r\n }\r\n});\r\naxiosInstance.interceptors.request.use(function (config) {\r\n var token = localStorage.getItem('accessToken')\r\n if (token)\r\n config.headers.Authorization = `Bearer ${token}`;\r\n return config;\r\n});\r\naxiosInstance.interceptors.response.use(function (response) {\r\n return response;\r\n}, handleError);\r\nexport default axiosInstance","import api from 'Api';\r\nimport { UserRoles } from '../constants/userRoles';\r\n\r\nexport class AppService {\r\n // This contains methods that handle app level requests\r\n async getUserData(emailAddress) {\r\n var response = await api.get('/users', {\r\n params: {\r\n email: emailAddress\r\n }\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async getBusinessProfile(name, referralCode, storeDomain, currencyId = 17, timeZoneId = 142) {\r\n var response = await api.post('/businessProfiles', {\r\n name,\r\n currencyId,\r\n timeZoneId,\r\n IsRoimatic: true,\r\n referralCode,\r\n storeDomain\r\n });\r\n return response.data;\r\n }\r\n\r\n async assignUserAccess(userId, businessProfileId) {\r\n await api.post(`/users/${userId}/businessProfiles/${businessProfileId}`, {\r\n role: UserRoles.UplocalAffliateAdmin\r\n })\r\n return;\r\n }\r\n\r\n async assignBusinessProfilePortalAccess(businessProfileId, portalId) {\r\n await api.post(`/businessProfiles/${businessProfileId}/portals/${portalId}`)\r\n return;\r\n }\r\n\r\n async createProductCatalog(businessProfileId, name) {\r\n let response = await api.post(`/businessProfiles/${businessProfileId}/ProductCatalogs`, { name });\r\n return response.data;\r\n }\r\n\r\n async getProductCatalog(businessProfileId, productCatalogId) {\r\n let response = await api.get(`/businessProfiles/${businessProfileId}/ProductCatalogs/${productCatalogId}`);\r\n return response.data.data;\r\n }\r\n async createProductFeed(businessProfileId, name, productCatalogId, url, engine = 0) {\r\n let params = {\r\n name,\r\n productCatalogId,\r\n url\r\n };\r\n if(engine != 0){\r\n params.engine = engine;\r\n }\r\n let response = await api.post(`/businessProfiles/${businessProfileId}/ProductFeeds`, params);\r\n return response.data.data;\r\n }\r\n\r\n async createTask(businessProfileId, id, productCatalogId, engine, isDirectTask, isApiUploadRequired, productMappings, businessProfileSearchEngineId = 0) {\r\n let productMaps = productMappings === undefined || productMappings === null ? [] : productMappings;\r\n\r\n let params = {\r\n productCatalogId,\r\n engine,\r\n isDirectTask,\r\n isApiUploadRequired,\r\n productMaps\r\n };\r\n\r\n if(businessProfileSearchEngineId != 0){\r\n params.businessProfileSearchEngineId = businessProfileSearchEngineId;\r\n }\r\n await api.post(`/businessProfiles/${businessProfileId}/productFeeds/${id}/process`, params);\r\n }\r\n async getBusinessProfileById(id)\r\n {\r\n var response = await api.get(`/businessProfiles/${id}`);\r\n return response.data.data;\r\n }\r\n\r\n async getPortalBusinessProfiles(userId, portalId, isRoimatic = null) {\r\n let params = {\r\n userId: userId\r\n }\r\n if(isRoimatic){\r\n params.isRoimatic = isRoimatic\r\n }\r\n var response = await api.get(`/portals/${portalId}/users/${userId}/businessProfiles`, {\r\n params\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async getUserBusinessProfiles(userId, isRoimatic = null) {\r\n let params = {\r\n isRoimatic: isRoimatic\r\n }\r\n var response = await api.get(`/users/${userId}/businessProfiles`, {\r\n params\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async getCurrencies() {\r\n var response = await api.get('/currencies');\r\n let currencies = response.data.data;\r\n let currencyinfos = [];\r\n currencies.forEach((currency) => {\r\n let currencyinfo = {};\r\n currencyinfo.id = currency.id;\r\n currencyinfo.code = currency.code;\r\n currencyinfo.displayName = currency.displayName;\r\n currencyinfo.currencyOffset = currency.currencyOffset;\r\n currencyinfos.push(currencyinfo);\r\n });\r\n return currencyinfos;\r\n }\r\n async getTimeZones() {\r\n var response = await api.get('/timezones');\r\n return response.data.data;\r\n }\r\n\r\n async updateBusinessProfile(businessProfileId, businessProfile) {\r\n var payload = JSON.stringify(JSON.stringify({ 'data': businessProfile }));\r\n await api.patch(`/businessProfiles/${businessProfileId}`, payload, {\r\n headers: {\r\n 'Content-type': 'application/json'\r\n }\r\n });\r\n };\r\n\r\n async uploadBusinessProfileLogo(bpId, file) {\r\n var formData = new FormData();\r\n formData.append('logoFile', file);\r\n var response = await api.post(`/businessProfiles/${bpId}/logo`, formData, {\r\n headers: {\r\n 'Content-type': 'multipart/form-data'\r\n }\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async getCurrencyInfo(currencyId, businessProfileId) {\r\n var response = await api.get(\r\n `/businessProfiles/${businessProfileId}/currencies/${currencyId}`\r\n );\r\n return response.data.data;\r\n }\r\n\r\n async getSearchCreatives(businessProfileId, theme) {\r\n let response = await api.get(\r\n `/businessProfiles/${businessProfileId}/roimatic/getSearchCreatives`, {\r\n params: {\r\n theme: theme\r\n } }\r\n );\r\n return response.data.data;\r\n }\r\n\r\n async getCountries() {\r\n var response = await api.get('/ip2locations/countries');\r\n return response.data.data;\r\n }\r\n\r\n async resetPassword(userId, currentPassword, newPassword) {\r\n await api.post(`/users/${userId}/resetPassword`, {\r\n currentPassword,\r\n newPassword\r\n });\r\n }\r\n\r\n async placeCallbackRequest(userId, number, businessProfileId, requestType = 0, comment = null, additionalInfo = null) {\r\n await api.post('/users/callback', {\r\n businessProfileId: businessProfileId ? businessProfileId : null,\r\n phone: number,\r\n id: userId ? userId : null,\r\n portal: window.location.host,\r\n requestType: requestType,\r\n comment: comment,\r\n additionalInfo: additionalInfo\r\n });\r\n }\r\n\r\n async getUserInformation(userId) {\r\n return await api.get(`/users/${userId}`);\r\n }\r\n async updateUserInformation(userId, data) {\r\n await api.put(`/users/${userId}`, data);\r\n }\r\n\r\n async setupLocalBusiness(businessProfileId, businessName) {\r\n let postData = {\r\n businessName,\r\n outlet: 'roimatic.adbox.pro',\r\n category: 'local-business',\r\n flavour: 'local-business'\r\n };\r\n await api.post(`/businessProfiles/${businessProfileId}/roimatic/localBusiness`, postData)\r\n }\r\n\r\n async getAllLanguages() {\r\n let response = await api.get('dxlanguages');\r\n return response.data.data;\r\n }\r\n\r\n async getUserDivisions(userId, portalId) {\r\n let response = await api.get(`/users/${userId}/portals/${portalId}/divisions`);\r\n return response.data.data;\r\n }\r\n\r\n async editUserInformation(userId, data) {\r\n var payload = JSON.stringify(JSON.stringify(data));\r\n await api.patch(`/users/${userId}`, payload, {\r\n headers: {\r\n 'Content-type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n async getAccountsByIds(businessProfileId, bpseIds, searchEngineTypeId) {\r\n let response = await api.get(`businessProfiles/${businessProfileId}/accounts`, {\r\n params: {\r\n businessProfileSearchEngineIds: bpseIds,\r\n searchEngineTypeId\r\n }\r\n });\r\n return response.data;\r\n }\r\n\r\n async linkCatalogAndBpse(businessProfileId, catalogId, bpseId, searchEngineProductCatalogId) {\r\n await api.post(`/businessProfiles/${businessProfileId}/ProductCatalogs/${catalogId}/accounts/${bpseId}`, { searchEngineProductCatalogId });\r\n }\r\n\r\n async getBusinessProfileUsers(businessProfileId) {\r\n let response = await api.get(`/users?businessProfileIds=${businessProfileId}`);\r\n return response.data.data;\r\n }\r\n}\r\n","import EventEmitter from 'eventemitter3'\r\nimport api from 'Api';\r\nimport { LoginProviderTypes } from '../constants/loginProviderTypes';\r\nimport { UserRoles } from '../constants/userRoles';\r\n\r\nexport class AuthService {\r\n constructor() {\r\n this.login = this.login.bind(this)\r\n this.setSession = this.setSession.bind(this)\r\n this.logout = this.logout.bind(this)\r\n this.isAuthenticated = this.isAuthenticated.bind(this)\r\n this.signUpUser = this.signUpUser.bind(this);\r\n this.getPortalData = this.getPortalData.bind(this);\r\n this.authenticated = this.isAuthenticated()\r\n this.authNotifier = new EventEmitter();\r\n }\r\n\r\n async signUpUser(user) {\r\n var userData = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n emailAddress: user.emailAddress,\r\n loginPassword: user.password,\r\n isTosAccepted: true,\r\n loginProviderType: user.loginProviderType,\r\n portalDomain: user.portalDomain,\r\n loginName: user.loginName,\r\n isEmailVerified: !!user.isEmailVerified,\r\n roleId: UserRoles.UplocalAffiliateClientAccess\r\n };\r\n var response = await api.post('/roimatic/users', userData);\r\n return response.data.id;\r\n }\r\n\r\n async login(loginDetails, portal) {\r\n if (!loginDetails.hasOwnProperty('loginProviderType')) {\r\n loginDetails.loginProviderType = LoginProviderTypes.DeltaX;\r\n }\r\n var login = {\r\n userName: loginDetails.emailAddress,\r\n password: loginDetails.password,\r\n portal: portal,\r\n loginProviderType: loginDetails.loginProviderType\r\n }\r\n var response = await api.post('/authentication/login', login);\r\n localStorage.setItem('accessToken', response.data.accessToken);\r\n return response.data;\r\n }\r\n\r\n async loginWithEmbed(embedToken) {\r\n let response = await api.post('/authentication/loginWithEmbedToken', {\r\n embedToken,\r\n portal: window.location.host\r\n });\r\n return response.data;\r\n }\r\n\r\n async getPortalData(portalDomain) {\r\n let response = await api.get('/portals', {\r\n headers: { 'X-Bypass-Login': true },\r\n params: {\r\n domain: portalDomain\r\n }\r\n });\r\n let responseData = response.data.data;\r\n return responseData && Array.isArray(responseData) && responseData.length > 0 ? responseData[0] : null;\r\n }\r\n\r\n async loginWithProvider(loginWithProviderDetails = {}) {\r\n if (!loginWithProviderDetails.hasOwnProperty('loginProviderType')) {\r\n loginWithProviderDetails.loginProviderType = LoginProviderTypes.Google;\r\n }\r\n\r\n var loginWithProvider = {\r\n portal: loginWithProviderDetails?.portal,\r\n loginProviderType: loginWithProviderDetails?.loginProviderType,\r\n authorizationCode: loginWithProviderDetails?.authorizationCode\r\n }\r\n var response = await api.post('/authentication/token', loginWithProvider);\r\n if (!response?.data?.accessToken) {\r\n throw new LoginError();\r\n }\r\n localStorage.setItem('accessToken', response.data.accessToken);\r\n return response.data; }\r\n\r\n handleAuthentication() {\r\n }\r\n\r\n setSession() {\r\n }\r\n\r\n async logout() {\r\n }\r\n\r\n isAuthenticated() {\r\n }\r\n}\r\n","import api from 'Api';\r\n\r\nexport class HqLocalApiService {\r\n constructor(businessProfileId){\r\n this.businessProfileId = businessProfileId;\r\n }\r\n async getStoreConfiguration(storeId, promotionId, creativeJson, searchEngineId) {\r\n let parameters = {\r\n storeId,\r\n creativeJson,\r\n searchEngineId\r\n }\r\n let response = await api.post(`/businessProfiles/${this.businessProfileId}/promotions/${promotionId}/storeConfiguration`, parameters);\r\n return response.data.data;\r\n }\r\n\r\n async generatePreviews(creatives, bpseId) {\r\n let response = await api.post(`/businessProfiles/${this.businessProfileId}/accounts/${bpseId}/creativePreviews`, { creatives });\r\n return response.data.data;\r\n }\r\n\r\n async getSettingsAsync(keyprefixes) {\r\n let response = await api.get(`businessProfiles/${this.businessProfileId}/settings?keyprefixes=${keyprefixes}&includeInternal=true`);\r\n return response.data.data;\r\n }\r\n\r\n async getAllPromotions(parameters) {\r\n let response = await api.get(`/businessProfiles/${this.businessProfileId}/promotions`, { params: parameters });\r\n return response.data.data;\r\n }\r\n\r\n async getStores(userId) {\r\n let response = await api.get(`/businessProfiles/${this.businessProfileId}/stores?userId=${userId}`)\r\n return response.data.data;\r\n }\r\n\r\n async getDefaultStores(){\r\n let params = {}\r\n params.isDefault = true;\r\n let response = await api.get(`businessProfiles/${this.businessProfileId}/Stores`, { params: params });\r\n return response.data.data[0];\r\n }\r\n\r\n async getLabels(storeDetails) {\r\n let filters = [\r\n {\r\n Field: 'Name',\r\n Operator: 7,\r\n Values: storeDetails\r\n }\r\n ]\r\n let response = await api.get(`/businessProfiles/${this.businessProfileId}/labels`, { params: {\r\n filters\r\n } })\r\n return response.data.labels;\r\n }\r\n\r\n async getTargetCluster(targetClusterIds, storeIds) {\r\n let response = await api.get(`/businessProfiles/${this.businessProfileId}/TargetClusters`, {\r\n params: {\r\n 'ids': targetClusterIds,\r\n 'storeIds': storeIds\r\n }\r\n })\r\n return response.data.data;\r\n }\r\n async launchPromotionCampaign(promotionCampaign){\r\n await api.post(`businessProfiles/${this.businessProfileId}/promotions/${promotionCampaign.promotion.id}/launch`, promotionCampaign)\r\n }\r\n\r\n async getVideos(bpseId, isUser) {\r\n let response = await api.get(`/businessProfiles/${this.businessProfileId}/accounts/${bpseId}/Videos`, {\r\n params: {\r\n 'user': isUser\r\n }\r\n })\r\n return response.data.data;\r\n }\r\n\r\n async getImages(bpseId, isUser = null, imageIds = null) {\r\n let params = {};\r\n if (imageIds)\r\n {\r\n params['Ids'] = imageIds.join(',');\r\n }\r\n if (isUser)\r\n {\r\n params['user'] = isUser;\r\n }\r\n let response = await api.get(`/businessProfiles/${this.businessProfileId}/accounts/${bpseId}/Images`, { params })\r\n return response.data.data;\r\n }\r\n\r\n async uploadVideo (bpseId, file, pageId, userId, contentRange, fileName, sessionKey, additionalFacebookPageIds = []) {\r\n let formData = new FormData();\r\n formData.append('videoFile', file, fileName);\r\n formData.append('facebookPageId', pageId);\r\n formData.append('userId', userId);\r\n for(let i = 0; i < additionalFacebookPageIds.length; i++){\r\n formData.append(`additionalFacebookPageIds[${i}]`, additionalFacebookPageIds[i])\r\n }\r\n if (sessionKey) {\r\n formData.append('sessionKey', sessionKey);\r\n }\r\n let headers = { 'Content-Type': 'multipart/form-data' }\r\n if (contentRange) {\r\n headers['Content-Range'] = contentRange;\r\n }\r\n\r\n var response = await api.post(`businessProfiles/${this.businessProfileId}/accounts/${bpseId}/videos/upload`, formData, {\r\n headers: headers\r\n });\r\n\r\n return response.data.data;\r\n }\r\n\r\n async getPublishedPosts(pageId, bpseId){\r\n var response = await api.get(`businessProfiles/${this.businessProfileId}/accounts/${bpseId}/live/pages/${pageId}/posts`);\r\n return response.data.data;\r\n }\r\n\r\n async getCanvases(pageId, bpseId){\r\n var response = await api.get(`businessProfiles/${this.businessProfileId}/accounts/${bpseId}/live/pages/${pageId}/canvases`);\r\n return response.data.data;\r\n }\r\n\r\n async uploadImage(file, bpseId, userId) {\r\n let formData = new FormData();\r\n formData.append('imageFiles', file);\r\n formData.append('userId', userId);\r\n\r\n let response = await api.post(`/businessProfiles/${this.businessProfileId}/accounts/${bpseId}/Images/upload`, formData, {\r\n headers: { 'Content-Type': 'multipart/form-data' }\r\n })\r\n return response.data.data;\r\n }\r\n\r\n async getVideosByIds(bpseId, videoIds){\r\n var response = await api.get(`businessProfiles/${this.businessProfileId}/accounts/${bpseId}/videos`, {\r\n params: {\r\n ids: videoIds\r\n }\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async getLatestPromotionVersions(promotionIds)\r\n {\r\n var response = await api.get(`businessProfiles/${this.businessProfileId}/promotionVersions?promotionIds=${promotionIds.join(',')}&latest=true`);\r\n return response.data;\r\n }\r\n\r\n async getPromotion(promotionId){\r\n var response = await api.get(`businessProfiles/${this.businessProfileId}/promotions/${promotionId}`);\r\n return response.data.data;\r\n }\r\n}\r\n\r\n","import api from 'Api';\r\nimport { compare } from 'fast-json-patch'\r\n\r\nexport class RoimaticService {\r\n constructor(businessProfileId){\r\n this.businessProfileId = businessProfileId;\r\n }\r\n\r\n async getRoimaticConfiguration() {\r\n var response = await api.get(`/businessProfiles/${this.businessProfileId}/roimatic`);\r\n return response.data.data;\r\n }\r\n\r\n async updateConfiguration(oldConfig, newConfig){\r\n var patch = compare(oldConfig, newConfig);\r\n await api.patch(`/businessProfiles/${this.businessProfileId}/roimatic`, patch);\r\n }\r\n\r\n async getPromotions(flavour) {\r\n var response = await api.get(`/businessProfiles/${this.businessProfileId}/roimatic/promotions`, {\r\n params: {\r\n flavour\r\n }\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async getPromoCreatives(promotionId) {\r\n var response = await api.get(`/businessProfiles/${this.businessProfileId}/roimatic/getCreatives`, {\r\n params: {\r\n promotionId\r\n }\r\n });\r\n return response.data.data;\r\n }\r\n async getCategoryCreatives(category) {\r\n var response = await api.get(`/businessProfiles/${this.businessProfileId}/roimatic/getCategoryCreatives`, {\r\n params: {\r\n category\r\n }\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async getCampaigns(mediapLanIds, drafts) {\r\n let params = {};\r\n if (mediapLanIds)\r\n {\r\n params['mediapLanIds'] = mediapLanIds;\r\n }\r\n if (drafts)\r\n {\r\n params['IsDraft'] = drafts;\r\n }\r\n var response = await api.get(`/businessProfiles/${this.businessProfileId}/roimatic/campaigns`, {\r\n params\r\n });\r\n return response.data.data;\r\n }\r\n\r\n async createCampaigns(campaign) {\r\n var response = await api.post(`/businessProfiles/${this.businessProfileId}/roimatic/campaigns`, campaign);\r\n return response.data.data;\r\n }\r\n\r\n async updateCampaigns(campaignId, data) {\r\n var response = await api.patch(`/businessProfiles/${this.businessProfileId}/roimatic/campaigns/${campaignId}`,\r\n data, {\r\n headers: {\r\n 'Content-type': 'application/json'\r\n }\r\n });\r\n return response.data.data;\r\n }\r\n}\r\n","/**\r\n * App Config File\r\n */\r\n\r\nconst staticFileBasePath = '/static/'\r\n\r\nexport default {\r\n staticImagesBasePath: `${staticFileBasePath}img/`,\r\n appLogo: `${staticFileBasePath}img/appLogo.png`,\r\n appLogoSignup: `${staticFileBasePath}img/appLogo.png`,\r\n pageNotFoundImage: `${staticFileBasePath}img/not-found.png`,\r\n shopifyLogo: `${staticFileBasePath}img/shopify-logo.png`,\r\n magentoLogo: `${staticFileBasePath}img/magento-logo.png`,\r\n wooCommerceLogo: `${staticFileBasePath}img/woocommerce-logo.png`,\r\n bigCommerceLogo: `${staticFileBasePath}img/big-commerce-logo.png`,\r\n facebookLogo: `${staticFileBasePath}img/facebook-logo.png`,\r\n googleMerchantCenterLogo: `${staticFileBasePath}img/google-merchant-center-logo.png`,\r\n googleSignIn: `${staticFileBasePath}img/google-sign-in.png`,\r\n googleSignInSmall: `${staticFileBasePath}img/google-sign-in-small.png`,\r\n embedGetStarted: `${staticFileBasePath}img/get-started.png`,\r\n copyrightText: 'Copyright @ $$year$$ MediaBuy Pte. Ltd.',\r\n brand: 'Xpresso',\r\n logoStoragePath: `${process.env.VUE_APP_STORAGE_URL}/AllFiles/Uploads/Logos/`,\r\n galleryStoragePath: `${process.env.VUE_APP_STORAGE_URL}/AllFiles/Uploads/Images/Gallery/`,\r\n stripeKey: process.env.VUE_APP_STRIPE_PUBLISHER_KEY,\r\n facebookGraphApiVersion: 'v8.0',\r\n minimumRechargeInUSD: 5,\r\n email: process.env.VUE_APP_EMAIL,\r\n callBackUrlForMagento: process.env.VUE_APP_CALLBACK_URL_MAGENTO,\r\n identityUrl: process.env.VUE_APP_IDENTITY_URL,\r\n googleMerchantCenterRedirectUrl:\r\n process.env.VUE_APP_GOOGLE_MERCHANT_CENTER_REDIRECT_URL,\r\n onboardingGoogleMerchantCenterRedirectUrl:\r\n process.env.VUE_APP_ONBOARDING_GOOGLE_MERCHANT_CENTER_REDIRECT_URL,\r\n shopifyRedirectUrl: process.env.VUE_APP_SHOPIFY_REDIRECT_URL,\r\n chatWindowUrl: 'https://wchat.freshchat.com',\r\n chatWindowToken: 'b24be9f0-7742-4dc2-8c79-9f84e9617897',\r\n bigCommerceOauthUrl: process.env.VUE_APP_BIGCOMMERCE_OAUTH_URL,\r\n sampleImagesStoragePath: `${process.env.VUE_APP_STORAGE_URL}/AllFiles/Uploads/Roimatic/Demo`,\r\n sampleVideosStoragePath: `${process.env.VUE_APP_STORAGE_URL}/AllFiles/Uploads/Roimatic/Demo`,\r\n bugsnagApiKey: 'fb4665a301c6449c09bcaf55e9fc74f9',\r\n razorpayKey: process.env.VUE_APP_RAZORPAY_KEY,\r\n imageNotAvailable: '/static/img/image-not-available.png',\r\n appName: process.env.VUE_APP_APPNAME,\r\n passwordStrengthRegex: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z\\d\\s]).*$/,\r\n clientId: '29243C0F8798458D94D25C8E0A2AF339'\r\n};","import { i18n } from '@/lang/'\r\n\r\nexport const Languages = [\r\n {\r\n id: 1,\r\n name: i18n.tc('message.userBlockMessages.english'),\r\n code: 'en'\r\n },\r\n {\r\n id: 2,\r\n name: i18n.tc('message.userBlockMessages.portuguese'),\r\n code: 'pt_PT'\r\n },\r\n {\r\n id: 3,\r\n name: i18n.tc('message.userBlockMessages.italian'),\r\n code: 'it'\r\n },\r\n {\r\n id: 4,\r\n name: i18n.tc('message.userBlockMessages.hindi'),\r\n code: 'hi'\r\n }\r\n]\r\n","export const SettingsType = {\r\n BOOLEAN: 1,\r\n TEXT: 2,\r\n JOBJECT: 3,\r\n JARRAY: 4\r\n}","export const LoginProviderTypes = {\r\n DeltaX: 1,\r\n Google: 2,\r\n Embed: 4\r\n}","// Logo sizes should be 300x90 and icon size should be 512x512 in png format!!!!!\r\nexport const StoreTypes = [\r\n {\r\n id: 1,\r\n store: 'Shopify',\r\n logo: 'shopify-logo.png',\r\n icon: 'shopify-icon.png'\r\n },\r\n {\r\n id: 2,\r\n store: 'Magento',\r\n logo: 'magento-logo.png',\r\n icon: 'magento-icon.png'\r\n },\r\n {\r\n id: 3,\r\n store: 'Dominos',\r\n logo: 'dominos-logo.png',\r\n icon: 'dominos-icon.png'\r\n },\r\n {\r\n id: 4,\r\n store: 'Toyota',\r\n logo: 'toyota-logo.png',\r\n icon: 'toyota-icon.png'\r\n },\r\n {\r\n id: 5,\r\n store: 'local-business',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 6,\r\n store: 'WooCommerce',\r\n logo: 'woocommerce-logo.png',\r\n icon: 'woocommerce-icon.png'\r\n },\r\n {\r\n id: 9,\r\n store: 'Goby',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 7,\r\n store: 'BigCommerce',\r\n logo: 'big-commerce-logo.png',\r\n icon: 'big-commerce-logo.png'\r\n },\r\n {\r\n id: 10,\r\n store: 'DeltaX',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 11,\r\n store: 'Auto',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 12,\r\n store: 'CoPromote',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 13,\r\n store: 'BrandPortal',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 14,\r\n store: 'RichMediaAdBuilder',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 8,\r\n store: 'CreativeBuilder',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 15,\r\n store: 'Affiliate',\r\n logo: '',\r\n icon: ''\r\n },\r\n {\r\n id: 16,\r\n store: 'EdTech',\r\n logo: 'edTech-logo.png',\r\n icon: 'edTech-icon.png'\r\n }\r\n\r\n]\r\nexport const Stores = {\r\n Shopify: 1,\r\n Magento: 2,\r\n Dominos: 3,\r\n Toyota: 4,\r\n LocalBusiness: 5,\r\n WooCommerce: 6,\r\n BigCommerce: 7,\r\n CreativeBuilder: 8,\r\n Goby: 9,\r\n deltaX: 10,\r\n Auto: 11,\r\n CoPromote: 12,\r\n BrandPortal: 13,\r\n RichMediaAdBuilder: 14,\r\n Affiliate: 15,\r\n EdTech: 16\r\n}\r\n\r\nexport const Outlet = 'roimatic.adbox.pro';\r\n\r\nexport const Flavor = {\r\n creativeBuilder: 'CreativeBuilder',\r\n deltaX: 'DeltaX',\r\n goby: 'Goby',\r\n auto: 'Auto',\r\n brandPortal: 'BrandPortal',\r\n richMediaAdBuilder: 'RichMediaAdBuilder',\r\n shopify: 'Shopify',\r\n affiliate: 'Affiliate'\r\n}\r\n\r\nexport const Mode = {\r\n campaignLauncher: 'CampaignLauncher',\r\n adServer: 'AdServer'\r\n}\r\n\r\nexport const CategoryTypes = [\r\n {\r\n id: 1,\r\n category: 'local-business'\r\n },\r\n {\r\n id: 2,\r\n category: 'e-commerce'\r\n },\r\n {\r\n id: 3,\r\n category: 'hq-franchise'\r\n },\r\n {\r\n id: 4,\r\n category: 'creative-builder'\r\n },\r\n {\r\n id: 5,\r\n category: 'brand-portal'\r\n },\r\n {\r\n id: 6,\r\n category: 'rich-media-ad-builder'\r\n },\r\n {\r\n id: 7,\r\n category: 'affiliate'\r\n }\r\n]\r\nexport const Categories = {\r\n LocalBusiness: 1,\r\n ECommerce: 2,\r\n HqFranchise: 3,\r\n CreativeBuilder: 4,\r\n BrandPortal: 5,\r\n RichMediaAdBuilder: 6,\r\n Affiliate: 7\r\n}\r\n","export const UserRoles = {\r\n AccountManager: 4,\r\n RoimaticUser: 15,\r\n BrandManager: 16,\r\n ClientAccess: 27,\r\n UplocalAffliateAdmin: 36,\r\n UplocalAffiliateClientAccess: 37\r\n}","export class CampaignAlreadyExistsException extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class EmailAlreadyVerifiedError extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}","export class EntityAlreadyExistsError extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class EntityDoesNotExistException extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class EntityNotFoundInCacheError extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class ForbiddenPortalRequested extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n","export class InvalidAccessTokenError extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class InvalidHashkeyRequested extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class InvalidLoginCredentials extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n","export class InvalidPortalRequestedException extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n","export class InvalidRequestDataException extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class OldPasswordException extends Error {\r\n constructor(error) {\r\n super(error)\r\n }\r\n}","export class PasswordExpiredError extends Error {\r\n constructor(error) {\r\n super(error)\r\n this.responseData = error.response.data;\r\n }\r\n}","export class ReviewManagementConfigurationError extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}","export class ShortCodeAlreadyExistsException extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","export class UserAccountExpiredException extends Error {\r\n constructor(message) {\r\n super(message);\r\n }\r\n}\r\n\r\n","const Addons = () => import(/* webpackChunkName: \"addons\" */'./Main');\r\nconst Packs = () => import(/* webpackChunkName: \"addons\" */'./components/AddonPack');\r\nconst addonsRoute = {\r\n name: 'addons',\r\n path: 'addons',\r\n component: Addons,\r\n meta: {\r\n requiresAuth: true,\r\n title: 'message.addons.addons',\r\n breadcrumb: 'message.addons.addons',\r\n showDateRangeFilter: false\r\n }\r\n}\r\n\r\nconst packsRoute = {\r\n name: 'packs',\r\n path: 'addons/categories/:categoryId/packs/:packId',\r\n component: Packs,\r\n meta: {\r\n requiresAuth: true,\r\n title: 'message.addons.addons',\r\n breadcrumb: 'message.addons.addons',\r\n showDateRangeFilter: false,\r\n routeName: 'addons',\r\n isBpLevelRoute: true\r\n }\r\n}\r\n\r\nexport const AddonsRoute = addonsRoute;\r\nexport const PacksRoute = packsRoute;\r\n\r\n","const Briefs = () => import(/* webpackChunkName: \"dashboard\" */ 'Features/briefs/Main');\r\nconst briefRoute = {\r\n name: 'portal-brief',\r\n path: '/brief/create',\r\n component: Briefs,\r\n meta: {\r\n requiresAuth: true,\r\n title: 'Briefs',\r\n breadcrumb: 'Briefs',\r\n showDateRangeFilter: false,\r\n customLayout: true\r\n }\r\n};\r\n\r\nconst briefRouteEdit = {\r\n name: 'briefEdit',\r\n path: 'brief/edit/:briefId',\r\n component: Briefs,\r\n meta: {\r\n requiresAuth: true,\r\n title: 'Briefs',\r\n breadcrumb: 'Briefs',\r\n showDateRangeFilter: false,\r\n customLayout: true,\r\n isBackBtnEnabled: true\r\n }\r\n}\r\nexport const BriefRoute = briefRoute;\r\nexport const BriefRouteEdit = briefRouteEdit;","export const DurationTypes = Object.freeze({\r\n LIFETIME: 2,\r\n DAILY: 1\r\n})\r\nexport const CollectionTypes = Object.freeze({\r\n CUSTOM: 'custom',\r\n SMART: 'smart'\r\n})\r\n\r\nexport const CampaignSplitTypes = Object.freeze({\r\n OneCampaignPerStore: 1,\r\n OneCampaignForAllStores: 2\r\n})\r\n\r\nexport const AdvancedSettingsEntityTypes = Object.freeze({\r\n CHANNELS: { id: 1, name: 'Channels', attribute: 'channels' },\r\n COLLECTIONS: { id: 2, name: 'Collections', attribute: 'collections' },\r\n PRODUCTS: { id: 3, name: 'Products', attribute: 'products' },\r\n SERVICE_AREAS: { id: 4, name: 'Service Areas', attribute: 'serviceAreas' },\r\n PLACEMENTS: { id: 5, name: 'Placement', attribute: 'placement' }\r\n})\r\n\r\nexport const AdvancedSettingsFilterTypes = Object.freeze({\r\n INCLUDE: { id: 1, name: 'includes' },\r\n EXCLUDE: { id: 2, name: 'excludes' },\r\n STARTS_WITH: { id: 3, name: 'starts with' },\r\n GREATER_THAN: { id: 4, name: 'greater than' },\r\n LESSER_THAN: { id: 5, name: 'lesser than' },\r\n EQUALS: { id: 6, name: 'equals' },\r\n DOESNOTEQUALS: { id: 7, name: 'not equals' }\r\n})\r\n\r\nexport const FilterTypesWithCustomValueSupport = Object.freeze([\r\n AdvancedSettingsFilterTypes.INCLUDE.id,\r\n AdvancedSettingsFilterTypes.EXCLUDE.id,\r\n AdvancedSettingsFilterTypes.STARTS_WITH.id,\r\n AdvancedSettingsFilterTypes.GREATER_THAN.id,\r\n AdvancedSettingsFilterTypes.LESSER_THAN.id\r\n])\r\n\r\n// Deltax Feed Status\r\nexport const productFeedStatus = {\r\n none: 0,\r\n notGenerated: 1,\r\n generating: 2,\r\n done: 3,\r\n failed: 4\r\n};\r\n\r\nexport const MultipleInputFilterTypes = Object.freeze([AdvancedSettingsFilterTypes.INCLUDE.id, AdvancedSettingsFilterTypes.EXCLUDE.id, AdvancedSettingsFilterTypes.STARTS_WITH.id, AdvancedSettingsFilterTypes.EQUALS.id, AdvancedSettingsFilterTypes.DOESNOTEQUALS.id]);\r\n\r\nexport const AdvancedSettingsSupportedFilters = Object.freeze({\r\n // Id: [AdvancedSettingsFilterTypes.INCLUDE, AdvancedSettingsFilterTypes.EXCLUDE],\r\n itemGroupId: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS, AdvancedSettingsFilterTypes.STARTS_WITH],\r\n title: [AdvancedSettingsFilterTypes.INCLUDE, AdvancedSettingsFilterTypes.EXCLUDE, AdvancedSettingsFilterTypes.STARTS_WITH],\r\n availability: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS],\r\n condition: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS],\r\n brand: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS, AdvancedSettingsFilterTypes.STARTS_WITH],\r\n ageGroup: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS],\r\n gender: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS],\r\n material: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS, AdvancedSettingsFilterTypes.STARTS_WITH],\r\n pattern: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS, AdvancedSettingsFilterTypes.STARTS_WITH],\r\n productType: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS, AdvancedSettingsFilterTypes.STARTS_WITH],\r\n salePrice: [AdvancedSettingsFilterTypes.GREATER_THAN, AdvancedSettingsFilterTypes.LESSER_THAN],\r\n price: [AdvancedSettingsFilterTypes.GREATER_THAN, AdvancedSettingsFilterTypes.LESSER_THAN],\r\n color: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS],\r\n size: [AdvancedSettingsFilterTypes.EQUALS, AdvancedSettingsFilterTypes.DOESNOTEQUALS]\r\n})\r\n\r\nexport const CreativeTemplateTypes = Object.freeze({\r\n SOCIAL: 1,\r\n SEARCH: 2,\r\n BANNER: 3,\r\n LINKEDIN: 4\r\n})\r\n//added for campaignForm LocalBussiness Objective\r\nexport const Objectives = {\r\n Traffic: 1,\r\n Leads: 2\r\n}\r\nexport const BUDGET_DATES = 'budgetAndDates';\r\nexport const AUDIENCE = 'audience';\r\nexport const CREATIVES = 'creatives';\r\nexport const PAYMENT_REVIEW = 'paymentAndReview';\r\n\r\nexport const WeekDays = [{\r\n id: 0,\r\n name: 'Sunday',\r\n shortName: 'Sun'\r\n},\r\n{\r\n id: 1,\r\n name: 'Monday',\r\n shortName: 'Mon'\r\n},\r\n{\r\n id: 2,\r\n name: 'Tuesday',\r\n shortName: 'Tue'\r\n},\r\n{\r\n id: 3,\r\n name: 'Wednesday',\r\n shortName: 'Wed'\r\n},\r\n{\r\n id: 4,\r\n name: 'Thursday',\r\n shortName: 'Thu'\r\n},\r\n{\r\n id: 5,\r\n name: 'Friday',\r\n shortName: 'Fri'\r\n}, {\r\n id: 6,\r\n name: 'Saturday',\r\n shortName: 'Sat'\r\n}]\r\n\r\nexport const USD = 'USD';\r\nexport const marketingStrategies = [\r\n {\r\n id: 1,\r\n name: 'message.campaignLaunch.reTargetingPlusProspecting'\r\n }\r\n // {\r\n // id: 2,\r\n // name: \"Prefer Re-targeting\",\r\n // },\r\n // {\r\n // id: 3,\r\n // name: \"Prefer Prospecting\"\r\n // }\r\n];\r\n\r\nexport const scheduleTimezoneTypes = [\r\n {\r\n value: 'USER',\r\n name: 'message.campaignLaunch.usersTimeZone'\r\n },\r\n {\r\n value: 'ADVERTISER',\r\n name: 'message.campaignLaunch.adAccountsTimezone'\r\n }\r\n];\r\n\r\nexport const displayTime = [\r\n {\r\n value: 0,\r\n label: '12 AM (Beginning of the day)'\r\n },\r\n\r\n {\r\n value: 60,\r\n label: '1 AM'\r\n },\r\n\r\n {\r\n value: 120,\r\n label: '2 AM'\r\n },\r\n\r\n {\r\n value: 180,\r\n label: '3 AM'\r\n },\r\n\r\n {\r\n value: 240,\r\n label: '4 AM'\r\n },\r\n\r\n {\r\n value: 300,\r\n label: '5 AM'\r\n },\r\n\r\n {\r\n value: 360,\r\n label: '6 AM'\r\n },\r\n\r\n {\r\n value: 420,\r\n label: '7 AM'\r\n },\r\n\r\n {\r\n value: 480,\r\n label: '8 AM'\r\n },\r\n\r\n {\r\n value: 540,\r\n label: '9 AM'\r\n },\r\n\r\n {\r\n value: 600,\r\n label: '10 AM'\r\n },\r\n\r\n {\r\n value: 660,\r\n label: '11 AM'\r\n },\r\n\r\n {\r\n value: 720,\r\n label: '12 PM'\r\n },\r\n\r\n {\r\n value: 780,\r\n label: '1 PM'\r\n },\r\n\r\n {\r\n value: 840,\r\n label: '2 PM'\r\n },\r\n\r\n {\r\n value: 900,\r\n label: '3 PM'\r\n },\r\n\r\n {\r\n value: 960,\r\n label: '4 PM'\r\n },\r\n\r\n {\r\n value: 1020,\r\n label: '5 PM'\r\n },\r\n\r\n {\r\n value: 1080,\r\n label: '6 PM'\r\n },\r\n\r\n {\r\n value: 1140,\r\n label: '7 PM'\r\n },\r\n\r\n {\r\n value: 1200,\r\n label: '8 PM'\r\n },\r\n\r\n {\r\n value: 1260,\r\n label: '9 PM'\r\n },\r\n\r\n {\r\n value: 1320,\r\n label: '10 PM'\r\n },\r\n\r\n {\r\n value: 1380,\r\n label: '11 PM'\r\n },\r\n\r\n {\r\n value: 1440,\r\n label: '12 AM (End of the day)'\r\n }\r\n]\r\n\r\nexport const SchedulingModes = {\r\n RunContinuously: 1,\r\n Schedule: 2\r\n}\r\n\r\nexport const Engines = Object.freeze({\r\n Google: 1,\r\n Facebook: 5,\r\n Twitter: 6\r\n});\r\n\r\nexport const PlacementTypes = {\r\n Mobile: 1,\r\n HomePage: 2,\r\n SearchHeader: 3,\r\n SearchResults: 4,\r\n RightColumn: 5,\r\n Other: 6\r\n};\r\n\r\nexport const channels = [\r\n { id: Engines.Facebook, name: 'Facebook' },\r\n // { id: Engines.Twitter, name: \"Twitter\" },\r\n { id: Engines.Google, name: 'Google' }\r\n]\r\n\r\nexport const placements = [\r\n { id: PlacementTypes.Mobile, name: 'Mobile' },\r\n { id: PlacementTypes.HomePage, name: 'Home Page' },\r\n { id: PlacementTypes.SearchHeader, name: 'Search Header' },\r\n { id: PlacementTypes.SearchResults, name: 'Search Results' },\r\n { id: PlacementTypes.RightColumn, name: 'Right Column' },\r\n { id: PlacementTypes.Other, name: 'Other' }\r\n];\r\n\r\nexport const dayPartingScheduleTypes = Object.freeze({\r\n AlwaysOn: 1,\r\n Custom: 3\r\n})\r\n\r\nexport const DeviceTypes = Object.freeze({\r\n Desktop: 1,\r\n Mobile: 2\r\n});\r\n\r\nexport const defaultProductGroups = Object.freeze({\r\n Gender: 'gender',\r\n AgeGroup: 'ageGroup',\r\n ProductType: 'productType'\r\n})\r\n\r\nexport const placementOption = Object.freeze({\r\n Manual: 'Manual',\r\n Automatic: 'Automatic'\r\n})\r\n\r\nexport const facebookAdPlacementValues = {\r\n AUDIENCE_NETWORK_INSTREAM_VIDEO: 1,\r\n AUDIENCE_NETWORK_INSTREAM_VIDEO_MOBILE: 2,\r\n AUDIENCE_NETWORK_OUTSTREAM_VIDEO: 3,\r\n AUDIENCE_NETWORK_REWARDED_VIDEO: 4,\r\n DESKTOP_FEED_STANDARD: 5,\r\n FACEBOOK_STORY_MOBILE: 6,\r\n INSTAGRAM_EXPLORE_CONTEXTUAL: 7,\r\n INSTAGRAM_EXPLORE_IMMERSIVE: 8,\r\n INSTAGRAM_STANDARD: 9,\r\n INSTAGRAM_STORY: 10,\r\n INSTANT_ARTICLE_RECIRCULATION_AD: 11,\r\n INSTANT_ARTICLE_STANDARD: 12,\r\n INSTREAM_VIDEO_DESKTOP: 13,\r\n INSTREAM_VIDEO_IMAGE: 14,\r\n INSTREAM_VIDEO_MOBILE: 15,\r\n JOB_BROWSER_DESKTOP: 16,\r\n JOB_BROWSER_MOBILE: 17,\r\n MARKETPLACE_MOBILE: 18,\r\n MESSENGER_MOBILE_INBOX_MEDIA: 19,\r\n MESSENGER_MOBILE_STORY_MEDIA: 20,\r\n MOBILE_BANNER: 21,\r\n MOBILE_FEED_BASIC: 22,\r\n MOBILE_FEED_STANDARD: 23,\r\n MOBILE_FULLWIDTH: 24,\r\n MOBILE_INTERSTITIAL: 25,\r\n MOBILE_MEDIUM_RECTANGLE: 26,\r\n MOBILE_NATIVE: 27,\r\n RIGHT_COLUMN_STANDARD: 28,\r\n SUGGESTED_VIDEO_DESKTOP: 29,\r\n SUGGESTED_VIDEO_MOBILE: 30,\r\n WATCH_FEED_HOME: 31,\r\n WATCH_FEED_MOBILE: 32,\r\n FACEBOOK_REELS_MOBILE: 33,\r\n INSTAGRAM_REELS: 34\r\n}\r\n\r\nexport const placementPreviews = [\r\n {\r\n value: 'RIGHT_COLUMN_STANDARD',\r\n label: 'message.campaignLaunch.desktopRightColumn',\r\n height: 300,\r\n width: 400,\r\n platform: 'Facebook',\r\n platformPosition: 'Right hand column'\r\n },\r\n {\r\n value: 'DESKTOP_FEED_STANDARD',\r\n label: 'message.campaignLaunch.desktopNewsFeed',\r\n height: 600,\r\n width: 520,\r\n platform: 'Facebook',\r\n platformPosition: 'Feed'\r\n },\r\n {\r\n value: 'MOBILE_FEED_STANDARD',\r\n label: 'message.campaignLaunch.mobileNewsFeed',\r\n height: 400,\r\n width: 400,\r\n platform: 'Facebook',\r\n platformPosition: 'Feed'\r\n },\r\n {\r\n value: 'MOBILE_FEED_BASIC',\r\n label: 'message.campaignLaunch.basicMobileFeed',\r\n height: 300,\r\n width: 400,\r\n platform: 'Facebook',\r\n platformPosition: 'Feed'\r\n },\r\n {\r\n value: 'INSTANT_ARTICLE_STANDARD',\r\n label: 'message.campaignLaunch.instantArticles',\r\n height: 500,\r\n width: 400,\r\n platform: 'Facebook',\r\n platformPosition: 'Instant article'\r\n },\r\n {\r\n value: 'MARKETPLACE_MOBILE',\r\n label: 'message.campaignLaunch.mobileMarketplace',\r\n height: 300,\r\n width: 400,\r\n platform: 'Facebook',\r\n platformPosition: 'Marketplace'\r\n },\r\n {\r\n value: 'FACEBOOK_STORY_MOBILE',\r\n label: 'message.campaignLaunch.facebookStory',\r\n height: 580,\r\n width: 400,\r\n platform: 'Facebook',\r\n platformPosition: 'Story'\r\n },\r\n {\r\n value: 'INSTAGRAM_STANDARD',\r\n label: 'message.campaignLaunch.instagramFeed',\r\n height: 500,\r\n width: 400,\r\n platform: 'Instagram',\r\n platformPosition: 'Stream'\r\n },\r\n {\r\n value: 'INSTAGRAM_STORY',\r\n label: 'message.campaignLaunch.instagramStory',\r\n height: 580,\r\n width: 400,\r\n platform: 'Instagram',\r\n platformPosition: 'Story'\r\n },\r\n {\r\n value: 'MOBILE_INTERSTITIAL',\r\n label: 'message.campaignLaunch.audienceNetworkInterstitial',\r\n height: 580,\r\n width: 400,\r\n platform: 'Audience network',\r\n platformPosition: 'Classic'\r\n },\r\n {\r\n value: 'MOBILE_BANNER',\r\n label: 'message.campaignLaunch.audienceNetworkBanner',\r\n height: 300,\r\n width: 400,\r\n platform: 'Audience network',\r\n platformPosition: 'Classic'\r\n },\r\n {\r\n value: 'MOBILE_MEDIUM_RECTANGLE',\r\n label: 'message.campaignLaunch.audienceNetworkMediumRectangle',\r\n height: 500,\r\n width: 400,\r\n platform: 'Audience network',\r\n platformPosition: 'Classic'\r\n },\r\n {\r\n value: 'MOBILE_NATIVE',\r\n label: 'message.campaignLaunch.audienceNetworkNative',\r\n height: 500,\r\n width: 400,\r\n platform: 'Audience network',\r\n platformPosition: 'Classic'\r\n },\r\n {\r\n value: 'AUDIENCE_NETWORK_INSTREAM_VIDEO',\r\n label: 'message.campaignLaunch.audienceNetworkInstreamVideo',\r\n height: 500,\r\n width: 500,\r\n platform: 'Audience network',\r\n platformPosition: 'Instream video'\r\n },\r\n {\r\n value: 'AUDIENCE_NETWORK_REWARDED_VIDEO',\r\n label: 'message.campaignLaunch.audienceNetworkRewardedVideo',\r\n height: 500,\r\n width: 500,\r\n platform: 'Audience network',\r\n platformPosition: 'Rewarded video'\r\n },\r\n {\r\n value: 'MESSENGER_MOBILE_STORY_MEDIA',\r\n label: 'message.campaignLaunch.messengerStories',\r\n height: 600,\r\n width: 400,\r\n platform: 'Messenger',\r\n platformPosition: 'Story'\r\n },\r\n {\r\n value: 'MESSENGER_MOBILE_INBOX_MEDIA',\r\n label: 'message.campaignLaunch.messengerInbox',\r\n height: 400,\r\n width: 400,\r\n platform: 'Messenger',\r\n platformPosition: 'Sponsored Messages'\r\n },\r\n {\r\n value: 'FACEBOOK_REELS_MOBILE',\r\n label: 'message.campaignLaunch.fbReels',\r\n height: 600,\r\n width: 400,\r\n platform: 'Facebook',\r\n platformPosition: 'Reels'\r\n },\r\n {\r\n value: 'INSTAGRAM_REELS',\r\n label: 'message.campaignLaunch.instagramReels',\r\n height: 600,\r\n width: 400,\r\n platform: 'Instagram',\r\n platformPosition: 'Reels'\r\n }\r\n];\r\n\r\nexport const coPromoteUserMappings = {\r\n 'sephora@roimatic.com': ['Sephora Collection'],\r\n 'tomfordbeauty@roimatic.com': ['Tom Ford Beauty'],\r\n 'tarte@roimatic.com': ['tarte'],\r\n 'makeupforever@roimatic.com': ['Make Up For Ever'],\r\n 'fentybeauty@roimatic.com': ['Fenty Beauty'],\r\n 'lauramercier@roimatic.com': ['Laura Mercier'],\r\n 'shuuemura@roimatic.com': ['Shu Uemura'],\r\n 'nars@roimatic.com': ['NARS'],\r\n 'charlottetilbury@roimatic.com': ['Charlotte Tilbury'],\r\n 'dior@roimatic.com': ['DIOR']\r\n}\r\n\r\nexport const destinationType = {\r\n DestinationUrl: 0,\r\n Page: 1,\r\n App: 2,\r\n Event: 3,\r\n Messenger: 4,\r\n SponsoredMessage: 5,\r\n WhatsApp: 6,\r\n InstagramDirect: 7,\r\n AppLinksAutomatic: 8,\r\n Facebook: 9,\r\n Undefined: 10\r\n}\r\n\r\nexport const objectives = {\r\n PageLikes: 3,\r\n EventResponses: 6,\r\n PostEngagement: 7,\r\n Conversions: 8,\r\n Traffic: 11,\r\n VideoViews: 12,\r\n ProductCatalogSales: 13,\r\n AppInstalls: 15,\r\n BrandAwareness: 16,\r\n Reach: 18,\r\n LeadGeneration: 14,\r\n Messages: 20\r\n}\r\n\r\nexport const MediaTypes = Object.freeze({\r\n IMAGES: 'Images',\r\n VIDEOS: 'Videos'\r\n})\r\n\r\nexport const CampaignLaunchStatus = {\r\n ReadyForExecution: 1,\r\n ExecutionInProgress: 2,\r\n ReadyForLaunch: 3,\r\n LaunchComplete: 4,\r\n Failed: 5\r\n}\r\n\r\nexport const PromotionLaunchType = Object.freeze({\r\n Standard: 0,\r\n Template: 1\r\n})\r\n\r\nexport const PromotionType = {\r\n Paid: 1,\r\n Organic: 2\r\n}\r\n\r\nexport const PromotionLaunchTypes = Object.freeze([{\r\n id: PromotionLaunchType.Standard,\r\n text: 'message.campaignLaunch.promotion',\r\n icon: 'subtitles'\r\n}, {\r\n id: PromotionLaunchType.Template,\r\n text: 'message.campaignLaunch.template',\r\n icon: 'style'\r\n}])\r\n\r\nexport const PromotionVersionStatus = {\r\n Draft: 1,\r\n Enabled: 2,\r\n Archived: 3\r\n}\r\n\r\nexport const PaymentDetails = [\r\n {\r\n id: 1,\r\n key: 'message.walletMessages.bankAccountNumber',\r\n value: null,\r\n showTooltip: true,\r\n localeSpecific: true\r\n },\r\n {\r\n id: 2,\r\n key: 'message.walletMessages.ifsc',\r\n value: null,\r\n showTooltip: true,\r\n localeSpecific: true\r\n },\r\n {\r\n id: 3,\r\n key: 'message.walletMessages.bankName',\r\n value: null,\r\n showTooltip: true,\r\n localeSpecific: true\r\n },\r\n {\r\n id: 4,\r\n key: 'message.walletMessages.upiAddress',\r\n value: null,\r\n showTooltip: true,\r\n localeSpecific: true,\r\n hideOnEmpty: true\r\n },\r\n {\r\n id: 5,\r\n key: 'message.walletMessages.beneficiaryName',\r\n value: null,\r\n showTooltip: false,\r\n localeSpecific: true\r\n }\r\n]\r\n\r\nexport const PaymentGatewayTypes = {\r\n Stripe: 1,\r\n Razorpay: 2\r\n}\r\n\r\nexport const BillingAccountStatus = {\r\n ONBOARDING_INCOMPLETE: 1,\r\n CONFIGURED: 2\r\n}\r\n\r\nexport const FundingSource = {\r\n HQ: 1,\r\n LOCAL: 2\r\n}","const CampaignLaunch = () => import(/* webpackChunkName: \"campaignLaunch\" */ 'Features/campaignLaunch/Main');\r\n// const CampaignLaunchVertical = () => import(/* webpackChunkName: \"campaignLaunchVertical\" */ 'Features/campaignLaunch/CampaignLaunchVertical');\r\n\r\nconst campaignLaunchRoute = {\r\n name: 'campaignLaunch',\r\n path: 'campaignLaunch',\r\n component: CampaignLaunch,\r\n meta: {\r\n requiresAuth: true,\r\n title: 'message.campaignLaunchHeader',\r\n breadcrumb: 'message.campaignLaunchHeader'\r\n }\r\n}\r\n\r\nexport default [\r\n campaignLaunchRoute\r\n // {\r\n // name: 'campaignLaunchVertical',\r\n // path: 'campaignLaunchVertical',\r\n // component: CampaignLaunchVertical,\r\n // meta: {\r\n // requiresAuth: true,\r\n // title: 'message.campaignLaunchHeader',\r\n // breadcrumb: 'message.campaignLaunchHeader'\r\n // }\r\n // }\r\n]\r\n\r\nexport const CampaignLaunchRoute = campaignLaunchRoute;","const { levels } = require('../constants/textStyles');\r\n\r\nconst minTime = 0;\r\nconst maxTime = 120;\r\nconst minimumDuration = 0.1;\r\nconst direction = { forward: 'forward', backward: 'backward' };\r\nconst timings = { startTime: 'startTime', endTime: 'endTime' };\r\nconst minimumPositionWidth = 1;\r\nconst lineSegmentsCount = 10; // 10 hatch marks for each second on ruler.\r\nconst adSwitchWait = 500; // In milli sec\r\nconst MIN_TWEEN_DURATION = 0;\r\nconst TWEEN_START_VALUE = 0;\r\nconst TWEEN_END_VALUE = 1;\r\nconst lastResetWait = 20;\r\nconst decreaseLetterLevelDuration = 30;\r\nconst defaultFps = 30;\r\nconst defaultAudioBitrate = 128; // kb / s\r\n\r\nconst loopTypes = {\r\n once: 1,\r\n forever: 100\r\n}\r\nconst foreverLoop = Infinity;\r\n\r\nconst download = {\r\n minOpacityChange: 0.001\r\n}\r\n\r\nconst intensityConstants = {\r\n move: {\r\n low: 200,\r\n medium: 100,\r\n hard: 70,\r\n intense: 30\r\n }\r\n}\r\n\r\nconst middleAnimationIntensities = {\r\n move: [\r\n {\r\n name: 'message.low',\r\n value: intensityConstants.move.low\r\n },\r\n {\r\n name: 'message.medium',\r\n value: intensityConstants.move.medium\r\n },\r\n {\r\n name: 'message.hard',\r\n value: intensityConstants.move.hard\r\n },\r\n {\r\n name: 'message.intense',\r\n value: intensityConstants.move.intense\r\n }\r\n ]\r\n}\r\n\r\nconst animateConstants = {\r\n rotateByDegrees: '90',\r\n scaleStart: '0',\r\n scaleEnd: '1',\r\n rotateStart: '0',\r\n rotateEnd: '360',\r\n rotations: 1,\r\n spinDeg: '360',\r\n slideLength: '20',\r\n minScale: '0',\r\n maxScale: '1.2',\r\n minOpacity: '0',\r\n maxOpacity: '1',\r\n moveLength: '10',\r\n defaultMiddleAnimationCount: 2,\r\n defaultMiddleTextAnimationCount: 1,\r\n middleAnimateDuration: 600,\r\n moveDuration: 100,\r\n fontSizeScale: 0.85,\r\n defaultEase: 'easeLinear',\r\n slideStart: '0',\r\n slideEnd: '100',\r\n shineColor: { rgba: { r: 236, g: 235, b: 228, a: 1 }, hex: '#ECEBE4' },\r\n repeat: 1,\r\n shineDirection: 'topLeftToBottomRight',\r\n shineStrokeWidth: 20,\r\n circularShineDirection: 'centerToEnd',\r\n circularShineStrokeWidth: 50\r\n}\r\n\r\nconst typeNames = {\r\n fade: 'Fade',\r\n blink: 'Blink',\r\n move: 'Move',\r\n heartBeat: 'HeartBeat',\r\n pulsate: 'Pulsate',\r\n spin: 'Spin',\r\n slideHorizontal: 'Slide Horizontal',\r\n slideVertical: 'Slide Vertical',\r\n fadeSlideHorizontal: 'Fade Slide Horizontal',\r\n fadeSlideVertical: 'Fade Slide Vertical',\r\n rotate: 'Rotate',\r\n scale: 'Scale',\r\n typeWriter: 'TypeWriter',\r\n shine: 'Shine',\r\n circularShine: 'Circular Shine',\r\n none: 'None'\r\n}\r\n\r\nconst positions = {\r\n start: 'start',\r\n middle: 'middle',\r\n end: 'end'\r\n}\r\n\r\nconst animationLayerTypes = {\r\n static: 'static',\r\n dynamic: 'dynamic'\r\n}\r\n\r\nconst starImage = '/img/icons/star.png';\r\n\r\nconst nonLayerAnimationTypes = {\r\n start: [\r\n { name: typeNames.fade },\r\n { name: typeNames.slideVertical },\r\n { name: typeNames.fadeSlideVertical },\r\n { name: typeNames.scale },\r\n { name: typeNames.typeWriter },\r\n { name: typeNames.none }\r\n ],\r\n middle: [\r\n { name: typeNames.blink },\r\n { name: typeNames.pulsate },\r\n { name: typeNames.heartBeat },\r\n { name: typeNames.none }\r\n ],\r\n end: [\r\n { name: typeNames.fade },\r\n { name: typeNames.slideVertical },\r\n { name: typeNames.fadeSlideVertical },\r\n { name: typeNames.scale },\r\n { name: typeNames.typeWriter },\r\n { name: typeNames.none }\r\n ]\r\n}\r\n\r\nconst animationTypes = {\r\n [levels.layer]: {\r\n start: [\r\n { name: typeNames.fade },\r\n { name: typeNames.slideVertical },\r\n { name: typeNames.slideHorizontal },\r\n { name: typeNames.fadeSlideVertical },\r\n { name: typeNames.fadeSlideHorizontal },\r\n { name: typeNames.rotate },\r\n { name: typeNames.scale },\r\n { name: typeNames.shine },\r\n { name: typeNames.circularShine },\r\n { name: typeNames.none }\r\n ],\r\n middle: [\r\n { name: typeNames.blink },\r\n { name: typeNames.move },\r\n { name: typeNames.pulsate },\r\n { name: typeNames.heartBeat },\r\n { name: typeNames.spin },\r\n { name: typeNames.none }\r\n ],\r\n end: [\r\n { name: typeNames.fade },\r\n { name: typeNames.slideVertical },\r\n { name: typeNames.slideHorizontal },\r\n { name: typeNames.fadeSlideVertical },\r\n { name: typeNames.fadeSlideHorizontal },\r\n { name: typeNames.rotate },\r\n { name: typeNames.scale },\r\n { name: typeNames.shine },\r\n { name: typeNames.circularShine },\r\n { name: typeNames.none }\r\n ]\r\n },\r\n [levels.letter]: nonLayerAnimationTypes,\r\n [levels.line]: nonLayerAnimationTypes,\r\n [levels.word]: nonLayerAnimationTypes\r\n}\r\n\r\nconst easingFunctions = [\r\n {\r\n fabricName: animateConstants.defaultEase,\r\n ease: 'Linear',\r\n type: 'None'\r\n },\r\n {\r\n fabricName: 'easeInQuad',\r\n ease: 'Quadratic',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutQuad',\r\n ease: 'Quadratic',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutQuad',\r\n ease: 'Quadratic',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInCubic',\r\n ease: 'Cubic',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutCubic',\r\n ease: 'Cubic',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutCubic',\r\n ease: 'Cubic',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInQuart',\r\n ease: 'Quartic',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutQuart',\r\n ease: 'Quartic',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutQuart',\r\n ease: 'Quartic',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInQuint',\r\n ease: 'Quintic',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutQuint',\r\n ease: 'Quintic',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutQuint',\r\n ease: 'Quintic',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInSine',\r\n ease: 'Sinusoidal',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutSine',\r\n ease: 'Sinusoidal',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutSine',\r\n ease: 'Sinusoidal',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInExpo',\r\n ease: 'Exponential',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutExpo',\r\n ease: 'Exponential',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutExpo',\r\n ease: 'Exponential',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInCirc',\r\n ease: 'Circular',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutCirc',\r\n ease: 'Circular',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutCirc',\r\n ease: 'Circular',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInCubic',\r\n ease: 'Cubic',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutCubic',\r\n ease: 'Cubic',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutCubic',\r\n ease: 'Cubic',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInElastic',\r\n ease: 'Elastic',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutElastic',\r\n ease: 'Elastic',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutElastic',\r\n ease: 'Elastic',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInBack',\r\n ease: 'Back',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutBack',\r\n ease: 'Back',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutBack',\r\n ease: 'Back',\r\n type: 'InOut'\r\n },\r\n {\r\n fabricName: 'easeInBounce',\r\n ease: 'Bounce',\r\n type: 'In'\r\n },\r\n {\r\n fabricName: 'easeOutBounce',\r\n ease: 'Bounce',\r\n type: 'Out'\r\n },\r\n {\r\n fabricName: 'easeInOutBounce',\r\n ease: 'Bounce',\r\n type: 'InOut'\r\n }\r\n]\r\n\r\nconst resetProperties = ['top', 'left', 'opacity', 'scaleY', 'scaleX', 'originX', 'originY', 'angle', 'visible', 'styles', 'padding', 'text', 'currentTime', 'fill'];\r\n\r\nconst animationPlayModes = {\r\n playAll: 'playAll',\r\n playSelected: 'playSelected',\r\n playEach: 'playEach'\r\n}\r\n\r\nconst stylesProperties = {\r\n fill: 'fill',\r\n deltaY: 'deltaY',\r\n fontSize: 'fontSize',\r\n top: 'top',\r\n left: 'left'\r\n}\r\n\r\nconst animationUpdateTypes = {\r\n LAYER: 'layer',\r\n ANIMATION_POSITION: 'animationPosition',\r\n ANIMATION_SOURCE_POSITION: 'animationSourcePosition'\r\n}\r\n\r\nconst animationConfigsRange = {\r\n fade: {\r\n min: '0',\r\n max: '100'\r\n },\r\n rotations: {\r\n min: '0',\r\n max: '50'\r\n },\r\n scale: {\r\n min: '0',\r\n max: '2000'\r\n },\r\n angle: {\r\n min: '-360',\r\n max: '360'\r\n },\r\n distance: {\r\n min: '0',\r\n max: '200'\r\n }\r\n}\r\n\r\nconst currentAnimationConfigValue = 'Current';\r\n\r\nconst animationConfigInitialValues = {\r\n fade: {\r\n fadeStart: '0',\r\n fadeEnd: currentAnimationConfigValue\r\n },\r\n scale: {\r\n scaleStart: '0',\r\n scaleEnd: currentAnimationConfigValue\r\n },\r\n slide: {\r\n slideStart: '0',\r\n slideEnd: currentAnimationConfigValue\r\n },\r\n fadeSlide: {\r\n slideStart: '0',\r\n slideEnd: currentAnimationConfigValue,\r\n fadeStart: '0',\r\n fadeEnd: currentAnimationConfigValue\r\n },\r\n rotate: {\r\n angleStart: '0',\r\n angleEnd: '360',\r\n rotations: 1,\r\n retrace: false\r\n },\r\n heartbeat: {\r\n count: animateConstants.defaultMiddleAnimationCount\r\n },\r\n spin: {\r\n count: animateConstants.defaultMiddleAnimationCount\r\n },\r\n blink: {\r\n count: animateConstants.defaultMiddleAnimationCount\r\n },\r\n move: {\r\n intensity: intensityConstants.move.medium,\r\n distance: '10'\r\n },\r\n pulsate: {\r\n fadeStart: currentAnimationConfigValue,\r\n fadeEnd: '0',\r\n scaleStart: currentAnimationConfigValue,\r\n scaleEnd: '0',\r\n count: animateConstants.defaultMiddleAnimationCount\r\n },\r\n shine: {\r\n color: animateConstants.shineColor,\r\n strokeWidth: animateConstants.shineStrokeWidth,\r\n direction: animateConstants.shineDirection,\r\n repeat: animateConstants.repeat\r\n },\r\n circularShine: {\r\n color: animateConstants.shineColor,\r\n strokeWidth: animateConstants.circularShineStrokeWidth,\r\n direction: animateConstants.circularShineDirection,\r\n repeat: animateConstants.repeat\r\n }\r\n}\r\n\r\nconst textAnimationConfigInitialValues = {\r\n fade: {\r\n fadeStart: animateConstants.minOpacity,\r\n fadeEnd: currentAnimationConfigValue\r\n },\r\n scale: {\r\n scaleStart: animateConstants.scaleStart,\r\n scaleEnd: currentAnimationConfigValue\r\n },\r\n slide: {\r\n slideStart: animateConstants.slideStart,\r\n slideEnd: currentAnimationConfigValue\r\n },\r\n fadeSlide: {\r\n slideStart: animateConstants.slideStart,\r\n slideEnd: currentAnimationConfigValue,\r\n fadeStart: animateConstants.minOpacity,\r\n fadeEnd: currentAnimationConfigValue\r\n },\r\n heartbeat: {\r\n count: animateConstants.defaultMiddleTextAnimationCount\r\n },\r\n blink: {\r\n count: animateConstants.defaultMiddleTextAnimationCount\r\n },\r\n pulsate: {\r\n fadeStart: currentAnimationConfigValue,\r\n fadeEnd: animateConstants.minOpacity,\r\n scaleStart: currentAnimationConfigValue,\r\n scaleEnd: animateConstants.scaleStart,\r\n count: animateConstants.defaultMiddleTextAnimationCount\r\n }\r\n}\r\n\r\nconst startAndEndAnimationPreviewContants = {\r\n 'Fade': {\r\n fadeStart: animateConstants.minOpacity.toString(),\r\n fadeEnd: (animateConstants.maxOpacity * 100).toString()\r\n },\r\n 'Scale': {\r\n scaleStart: animateConstants.scaleStart.toString(),\r\n scaleEnd: (animateConstants.scaleEnd * 100).toString()\r\n },\r\n 'Slide Vertical': {\r\n slideStart: animateConstants.slideStart.toString(),\r\n slideEnd: animateConstants.slideEnd.toString()\r\n },\r\n 'Slide Horizontal': {\r\n slideStart: animateConstants.slideStart.toString(),\r\n slideEnd: animateConstants.slideEnd.toString()\r\n },\r\n 'Fade Slide Horizontal': {\r\n slideStart: animateConstants.slideStart.toString(),\r\n slideEnd: animateConstants.slideEnd.toString(),\r\n fadeStart: animateConstants.minOpacity.toString(),\r\n fadeEnd: (animateConstants.maxOpacity * 100).toString()\r\n },\r\n 'Fade Slide Vertical': {\r\n slideStart: animateConstants.slideStart.toString(),\r\n slideEnd: animateConstants.slideEnd.toString(),\r\n fadeStart: animateConstants.minOpacity.toString(),\r\n fadeEnd: (animateConstants.maxOpacity * 100).toString()\r\n },\r\n 'Rotate': {\r\n angleStart: animateConstants.rotateStart.toString(),\r\n angleEnd: animateConstants.rotateEnd.toString(),\r\n rotations: animateConstants.rotations,\r\n retrace: false\r\n },\r\n 'Shine': {\r\n color: animateConstants.shineColor,\r\n strokeWidth: animateConstants.shineStrokeWidth,\r\n direction: animateConstants.shineDirection,\r\n repeat: animateConstants.repeat\r\n },\r\n 'Circular Shine': {\r\n color: animateConstants.shineColor,\r\n strokeWidth: animateConstants.circularShineStrokeWidth,\r\n direction: animateConstants.circularShineDirection,\r\n repeat: animateConstants.repeat\r\n }\r\n}\r\n\r\nconst animationPreviewConstants = {\r\n start: startAndEndAnimationPreviewContants,\r\n middle: {\r\n 'Blink': {\r\n count: animateConstants.defaultMiddleAnimationCount\r\n },\r\n 'Move': {\r\n intensity: animateConstants.moveDuration,\r\n distance: animateConstants.moveLength.toString()\r\n },\r\n 'Spin': {\r\n count: animateConstants.defaultMiddleAnimationCount\r\n },\r\n 'HeartBeat': {\r\n count: animateConstants.defaultMiddleAnimationCount\r\n },\r\n 'Pulsate': {\r\n fadeStart: animateConstants.minOpacity.toString(),\r\n fadeEnd: (animateConstants.maxOpacity * 100).toString(),\r\n scaleStart: animateConstants.scaleStart.toString(),\r\n scaleEnd: (animateConstants.scaleEnd * 100).toString(),\r\n count: animateConstants.defaultMiddleAnimationCount\r\n }\r\n },\r\n end: startAndEndAnimationPreviewContants\r\n}\r\n\r\nconst startAndEndTextAnimationPreviewContants = {\r\n 'Fade': {\r\n fadeStart: animateConstants.minOpacity.toString(),\r\n fadeEnd: (animateConstants.maxOpacity * 100).toString()\r\n },\r\n 'Scale': {\r\n scaleStart: animateConstants.scaleStart.toString(),\r\n scaleEnd: (animateConstants.scaleEnd * 100).toString()\r\n },\r\n 'Slide Vertical': {\r\n slideStart: animateConstants.slideStart.toString(),\r\n slideEnd: currentAnimationConfigValue\r\n },\r\n 'Fade Slide Vertical': {\r\n slideStart: animateConstants.slideStart.toString(),\r\n slideEnd: currentAnimationConfigValue,\r\n fadeStart: (animateConstants.minOpacity * 100).toString(),\r\n fadeEnd: (animateConstants.maxOpacity * 100).toString()\r\n }\r\n}\r\n\r\nconst textAnimationPreviewConstants = {\r\n start: startAndEndTextAnimationPreviewContants,\r\n middle: {\r\n 'Blink': {\r\n count: animateConstants.defaultMiddleTextAnimationCount\r\n },\r\n 'HeartBeat': {\r\n count: animateConstants.defaultMiddleTextAnimationCount\r\n },\r\n 'Pulsate': {\r\n fadeStart: animateConstants.minOpacity.toString(),\r\n fadeEnd: (animateConstants.maxOpacity * 100).toString(),\r\n scaleStart: currentAnimationConfigValue,\r\n scaleEnd: animateConstants.scaleStart.toString(),\r\n count: animateConstants.defaultMiddleTextAnimationCount\r\n }\r\n },\r\n end: startAndEndTextAnimationPreviewContants\r\n}\r\n\r\nconst nonSupportedAnimationTypesForTextLevel = [typeNames.move, typeNames.spin, typeNames.slideHorizontal, typeNames.fadeSlideHorizontal, typeNames.rotate]\r\n\r\nconst shineAnimationDirection = {\r\n FORWARD: 'forward',\r\n BACKWARD: 'backward',\r\n DOWN: 'down',\r\n UP: 'up',\r\n TOP_LEFT_TO_BOTTOM_RIGHT: 'topLeftToBottomRight',\r\n TOP_RIGHT_TO_BOTTOM_LEFT: 'topRightToBottomLeft',\r\n BOTTOM_LEFT_TO_TOP_RIGHT: 'bottomLeftToTopRight',\r\n BOTTOM_RIGHT_TO_TOP_LEFT: 'bottomRightToTopLeft'\r\n};\r\n\r\nconst circularShineAnimationDirection = {\r\n CENTER_TO_END: 'centerToEnd',\r\n END_TO_CENTER: 'endToCenter'\r\n};\r\n\r\nconst existingTemplatesConstants = {\r\n pingFadeStart: '30',\r\n fadeStart: '0',\r\n zoomInScaleEnd: '120',\r\n scaleDownScaleStart: '120',\r\n pulsateScaleEnd: '120',\r\n layerPulsateScaleEnd: '125',\r\n pingScaleEnd: '0',\r\n scaleUpScaleEnd: '120',\r\n ScaleDownScaleEnd: '0',\r\n fadeEnd: '0'\r\n}\r\n\r\nmodule.exports = {\r\n minTime,\r\n maxTime,\r\n minimumDuration,\r\n direction,\r\n timings,\r\n minimumPositionWidth,\r\n lineSegmentsCount,\r\n adSwitchWait,\r\n MIN_TWEEN_DURATION,\r\n TWEEN_START_VALUE,\r\n TWEEN_END_VALUE,\r\n lastResetWait,\r\n decreaseLetterLevelDuration,\r\n defaultFps,\r\n defaultAudioBitrate,\r\n loopTypes,\r\n foreverLoop,\r\n download,\r\n middleAnimationIntensities,\r\n animateConstants,\r\n typeNames,\r\n positions,\r\n animationLayerTypes,\r\n starImage,\r\n animationTypes,\r\n easingFunctions,\r\n resetProperties,\r\n animationPlayModes,\r\n stylesProperties,\r\n animationUpdateTypes,\r\n animationConfigsRange,\r\n currentAnimationConfigValue,\r\n animationConfigInitialValues,\r\n textAnimationConfigInitialValues,\r\n animationPreviewConstants,\r\n textAnimationPreviewConstants,\r\n nonSupportedAnimationTypesForTextLevel,\r\n shineAnimationDirection,\r\n circularShineAnimationDirection,\r\n existingTemplatesConstants\r\n};","const mediaElementReadyState = Object.freeze({\r\n HAVE_NOTHING: 0,\r\n HAVE_METADATA: 1,\r\n HAVE_CURRENT_DATA: 2,\r\n HAVE_FUTURE_DATA: 3,\r\n HAVE_ENOUGH_DATA: 4\r\n});\r\n\r\nconst defaultTtsConfiguration = Object.freeze({\r\n pitch: 0,\r\n speakingRate: 1,\r\n text: '',\r\n voice: {\r\n languageCode: 'en-US',\r\n name: 'en-US-Wavenet-D'\r\n },\r\n data: '',\r\n isApiCallRequired: false\r\n});\r\n\r\nconst defaultVoiceTypes = ['Wavenet', 'Standard', 'Neural2', 'Polyglot', 'Studio', 'News', 'Casual', 'Journey'];\r\n\r\nmodule.exports = {\r\n mediaElementReadyState,\r\n defaultTtsConfiguration,\r\n defaultVoiceTypes\r\n};\r\n","const standardCanvasWidth = 250;\r\nconst standardCanvasHeight = 250;\r\nconst standardCanvasArea = standardCanvasWidth * standardCanvasHeight;\r\nconst exportTypes = {\r\n png: { id: 1, name: 'PNG', icon: 'photo' },\r\n video: { id: 2, name: 'Video', icon: 'videocam' },\r\n html5: { id: 3, name: 'HTML5', icon: 'code' },\r\n dv360: { id: 4, name: 'AMP Ads - DV360', icon: 'offline_bolt' },\r\n gif: { id: 5, name: 'GIF', icon: 'gif_box' },\r\n jpeg: { id: 6, name: 'JPEG', icon: 'wallpaper' },\r\n googleAds: { id: 7, name: 'AMP Ads - GoogleAds', icon: 'offline_bolt' }\r\n};\r\n\r\nconst EntityType = {\r\n Layers: 1,\r\n Variables: 2\r\n};\r\n\r\nconst downloadFormats = [\r\n exportTypes.png,\r\n exportTypes.video,\r\n exportTypes.html5,\r\n exportTypes.dv360,\r\n exportTypes.gif,\r\n exportTypes.jpeg,\r\n exportTypes.googleAds\r\n];\r\n\r\nconst ampDownloadTypes = [\r\n {\r\n id: 1,\r\n label: 'Display & Video 360',\r\n name: 'DV360'\r\n },\r\n {\r\n id: 2,\r\n label: 'Google Ads',\r\n name: 'GoogleAds'\r\n }\r\n]\r\n\r\nconst canvasLayouts = {\r\n MOSAIC: 1,\r\n LIST: 2,\r\n CAROUSEL: 3,\r\n VARIANTS: 4\r\n}\r\n\r\nconst zoomExtreme = {\r\n minZoom: 10,\r\n maxZoom: 300\r\n}\r\n\r\nconst nodeNames = {\r\n img: 'IMG',\r\n audio: 'AUDIO',\r\n video: 'VIDEO'\r\n}\r\n\r\nconst editingModes = {\r\n Single: 1,\r\n Multiple: 2\r\n}\r\n\r\nconst previewModeParams = {\r\n 'isPreviewMode': 'pm',\r\n 'adsPerRow': 'apr',\r\n 'zoom': 'zm',\r\n 'variantType': 'vt',\r\n 'variantId': 'vi',\r\n 'layoutType': 'lt',\r\n 'adVariantParentId': 'av'\r\n}\r\n\r\nconst sizeTreeTypes = {\r\n MultipleChoice: 1,\r\n SingleChoice: 2,\r\n LimitedChoice: 3\r\n}\r\n\r\nconst commentFilters = {\r\n ALL: 1,\r\n UNRESOLVED: 2,\r\n RESOLVED: 3\r\n}\r\n\r\nconst RoimaticCreativeSetCommentsMenu = {\r\n EDIT_TEMPLATE: 1,\r\n ADD_NOTE: 2,\r\n VIEW_NOTES: 3,\r\n HIDE_NOTES: 4,\r\n SHOW_COMMENTS: 5,\r\n HIDE_COMMENTS: 6\r\n}\r\n\r\nconst RoimaticCreativeSetStatus = {\r\n DRAFT: 1,\r\n DELETE: 3,\r\n IN_REVIEW: 5,\r\n PUBLISHED: 6\r\n}\r\n\r\nconst RoimaticCreativeSetStatusTypes = [\r\n { id: RoimaticCreativeSetStatus.DRAFT, title: 'message.CreativeBuilder.draft' },\r\n { id: RoimaticCreativeSetStatus.IN_REVIEW, title: 'message.CreativeBuilder.inReview', icon: 'mdi-forum-outline' },\r\n { id: RoimaticCreativeSetStatus.PUBLISHED, title: 'message.CreativeBuilder.published', icon: 'mdi-tune' }\r\n]\r\n\r\nconst commentFilterTypes = [\r\n {\r\n id: 1,\r\n name: 'message.all'\r\n },\r\n {\r\n id: 2,\r\n name: 'message.CreativeBuilder.unresolved'\r\n },\r\n {\r\n id: 3,\r\n name: 'message.CreativeBuilder.resolved'\r\n }\r\n]\r\n\r\nconst methodOperations = {\r\n APPLY: 1,\r\n SET: 2\r\n}\r\nconst fontBaseUrl = `${process.env.VUE_APP_CB_FONTS_URL}`;\r\n\r\n// Overrides the object control styling\r\n// http://fabricjs.com/controls-customization\r\n// http://fabricjs.com/docs/fabric.Object.html#cornerSize\r\nconst fabricObjectControls = {\r\n borderColor: '#197EF1', // Default: rgb(178,204,255)\r\n borderHoverColor: '#197EF1',\r\n borderScaleFactor: 1.0, // Default: 1\r\n maxBorderScaleFactor: 6.0,\r\n cornerColor: '#FFFFFF', // Default: rgb(178,204,255)\r\n cornerStrokeColor: '#197EF1', // Switch to #DD1155 for contrasting color\r\n cornerSize: 13, // Default: 13\r\n maxCornerSize: 80,\r\n minCornerSize: 9,\r\n cornerStyle: 'rect',\r\n transparentCorners: false, // Default: true\r\n padding: 0\r\n}\r\n\r\nconst originX = {\r\n left: 'left',\r\n center: 'center',\r\n right: 'right'\r\n};\r\n\r\nconst originY = {\r\n top: 'top',\r\n center: 'center',\r\n bottom: 'bottom'\r\n};\r\n\r\nconst bpseTypes = Object.freeze({\r\n facebook: 5,\r\n googleDrive: 51\r\n});\r\n\r\nconst googleDriveExportOperationTypes = {\r\n APPEND: 1,\r\n REPLACE: 2\r\n}\r\n\r\nconst cbRouteNames = {\r\n BASE: 'creativeBuilder',\r\n TEMPLATE: 'creativeBuilderTemplate',\r\n VARIANT: 'creativeBuilderTemplateVariant',\r\n EXPORT: 'creativeBuilderExport',\r\n ADD_EXPORT: 'creativeBuilderAddExport',\r\n CLONE_EXPORT: 'creativeBuilderCloneExport',\r\n VIEW_EXPORT: 'creativeBuilderViewExport',\r\n EXPORT_PRESET: 'creativeBuilderExportPreset',\r\n UNSAVEDVARIANT: 'creativeBuilderVariant',\r\n EXPORTPREVIEW: 'creativeBuilderExportPreview',\r\n EDIT_EXPORT: 'creativeBuilderEditExport'\r\n};\r\n\r\nconst mediaIcons = {\r\n image: 'photo',\r\n video: 'videocam',\r\n audio: 'music_note'\r\n};\r\n\r\nconst templateTypes = {\r\n Static: 1,\r\n Video: 2,\r\n Animation: 3\r\n}\r\n\r\nconst publishAPIStatus = {\r\n None: null,\r\n Disabled: 0,\r\n Published: 1\r\n}\r\n\r\nconst variantEditModes = {\r\n TABLE: 'table',\r\n PANEL: 'panel'\r\n}\r\n\r\nmodule.exports = {\r\n standardCanvasWidth,\r\n standardCanvasHeight,\r\n standardCanvasArea,\r\n exportTypes,\r\n EntityType,\r\n downloadFormats,\r\n ampDownloadTypes,\r\n canvasLayouts,\r\n zoomExtreme,\r\n nodeNames,\r\n editingModes,\r\n previewModeParams,\r\n sizeTreeTypes,\r\n commentFilters,\r\n RoimaticCreativeSetCommentsMenu,\r\n RoimaticCreativeSetStatus,\r\n RoimaticCreativeSetStatusTypes,\r\n commentFilterTypes,\r\n methodOperations,\r\n fontBaseUrl,\r\n fabricObjectControls,\r\n originX,\r\n originY,\r\n bpseTypes,\r\n cbRouteNames,\r\n mediaIcons,\r\n templateTypes,\r\n publishAPIStatus,\r\n variantEditModes,\r\n googleDriveExportOperationTypes\r\n};\r\n","const gridLayoutPositions = {\r\n topLeft: 1,\r\n topCentre: 2,\r\n topRight: 3,\r\n middleLeft: 4,\r\n middleCentre: 5,\r\n middleRight: 6,\r\n bottomLeft: 7,\r\n bottomCentre: 8,\r\n bottomRight: 9\r\n}\r\n\r\nconst topProximityFactor = 0.01;\r\nconst bottomProximityFactor = 0.99;\r\nconst leftProximityFactor = 0.01;\r\nconst rightProximityFactor = 0.98;\r\n\r\nconst gridLayoutTypes = {\r\n Square: 1,\r\n Rectangle: 2,\r\n Horizontal: 3,\r\n Vertical: 4\r\n}\r\n\r\nconst directions = {\r\n left: 1,\r\n top: 2,\r\n right: 3,\r\n bottom: 4\r\n}\r\n\r\nconst keyDirections = {\r\n left: 'ArrowLeft',\r\n top: 'ArrowUp',\r\n right: 'ArrowRight',\r\n bottom: 'ArrowDown'\r\n}\r\n\r\nmodule.exports = {\r\n gridLayoutPositions,\r\n topProximityFactor,\r\n bottomProximityFactor,\r\n leftProximityFactor,\r\n rightProximityFactor,\r\n gridLayoutTypes,\r\n directions,\r\n keyDirections\r\n};","const { shapes } = require('./shapes');\r\n\r\nconst imageNotAvailablePath = '/static/img/image-not-available.png';\r\n\r\nconst defaultBgRemoveFilter = {\r\n enabled: false,\r\n bgRemovedUrl: '',\r\n steps: []\r\n};\r\n\r\nconst defaultBackgroundRemoveOptions = {\r\n model: 'u2net',\r\n alphaMatting: 'False',\r\n alphaMattingSettings: {\r\n foregroundThreshold: 240,\r\n backgroundThreshold: 10,\r\n erodeSize: 10\r\n },\r\n cropToVisiblePixels: 'False'\r\n};\r\n\r\nconst clippingDefaults = {\r\n enabled: false,\r\n clipPath: shapes[0].path,\r\n scaleX: 1,\r\n scaleY: 1,\r\n originX: 'center',\r\n originY: 'center',\r\n rotateAngle: 0,\r\n clipPositionOffsets: {\r\n hOffset: 0,\r\n vOffset: 0\r\n }\r\n}\r\n\r\nconst defaultInpaintForegroundFilter = {\r\n enabled: false,\r\n autoMask: true,\r\n maskUrl: '',\r\n expandMask: 30, // px\r\n fgRemovedUrl: ''\r\n};\r\n\r\nconst imageFits = {\r\n original: 0,\r\n stretchToFit: 1,\r\n fillToBounds: 2,\r\n fitAndCrop: 3,\r\n crop: 4,\r\n clipToBounds: 5\r\n}\r\n\r\nmodule.exports = {\r\n imageNotAvailablePath,\r\n defaultBgRemoveFilter,\r\n defaultBackgroundRemoveOptions,\r\n clippingDefaults,\r\n defaultInpaintForegroundFilter,\r\n imageFits\r\n};\r\n","const layers = {\r\n background: 'Background',\r\n text: 'Text',\r\n button: 'Button',\r\n image: 'Image',\r\n border: 'Border',\r\n shape: 'Shape',\r\n subtitle: 'Subtitle',\r\n video: 'Video',\r\n audio: 'Audio',\r\n speakerImage: 'SpeakerImage',\r\n multipleImages: 'MultipleImages'\r\n}\r\n\r\nconst layerIcons = {\r\n background: 'wallpaper',\r\n text: 'text_fields',\r\n button: 'add_box',\r\n image: 'add_photo_alternate',\r\n border: 'border_outer',\r\n shape: 'category',\r\n subtitle: 'subtitles',\r\n video: 'videocam',\r\n audio: 'audiotrack',\r\n speakerImage: 'add_photo_alternate',\r\n multipleImages: 'perm_media'\r\n}\r\n\r\nconst layerColors = {\r\n background: 'blue',\r\n text: 'pink',\r\n button: 'green',\r\n image: 'purple',\r\n border: 'lime',\r\n shape: 'yellow',\r\n video: 'teal',\r\n audio: 'indigo'\r\n};\r\n\r\nconst getLayerIcon = function(layerType) {\r\n switch (layerType) {\r\n case layers.background:\r\n return layerIcons.background;\r\n case layers.text:\r\n return layerIcons.text;\r\n case layers.button:\r\n return layerIcons.button;\r\n case layers.image:\r\n return layerIcons.image;\r\n case layers.border:\r\n return layerIcons.border;\r\n case layers.shape:\r\n return layerIcons.shape;\r\n case layers.subtitle:\r\n return layerIcons.subtitle;\r\n case layers.video:\r\n return layerIcons.video;\r\n case layers.audio:\r\n return layerIcons.audio;\r\n case layers.speakerImage:\r\n return layerIcons.speakerImage;\r\n case layers.multipleImages:\r\n return layerIcons.multipleImages;\r\n }\r\n};\r\nconst getLayerColor = function(layerType) {\r\n switch (layerType) {\r\n case layers.background:\r\n return layerColors.background;\r\n case layers.text:\r\n return layerColors.text;\r\n case layers.button:\r\n return layerColors.button;\r\n case layers.image:\r\n return layerColors.image;\r\n case layers.border:\r\n return layerColors.border;\r\n case layers.shape:\r\n return layerColors.shape;\r\n case layers.video:\r\n return layerColors.video;\r\n case layers.audio:\r\n return layerColors.audio;\r\n }\r\n};\r\n\r\nconst reorderActions = {\r\n sendBackwards: 'sendObjectBackwards',\r\n sendToBack: 'sendObjectToBack',\r\n bringForward: 'bringObjectForward',\r\n bringToFront: 'bringObjectToFront',\r\n dragAndDrop: 'dragAndDrop'\r\n};\r\n\r\nconst layerReorderDisabledLayers = [\r\n layers.background,\r\n layers.border,\r\n layers.subtitle,\r\n layers.speakerImage\r\n];\r\n\r\nconst layerCloneDisabledLayers = [\r\n layers.background,\r\n layers.border,\r\n layers.subtitle,\r\n layers.audio,\r\n layers.speakerImage\r\n];\r\n\r\nconst layerLockDisabledLayers = [\r\n layers.background,\r\n layers.border\r\n];\r\n\r\nconst layerHideDisabledLayers = [];\r\n\r\nconst mediaTypes = {\r\n image: 'image',\r\n video: 'video',\r\n audio: 'audio',\r\n font: 'font'\r\n};\r\n\r\nconst supportedMediaExtensions = {\r\n image: ['jpg', 'jpeg', 'png', 'bmp', 'svg', 'gif'],\r\n video: ['mp4', 'webm', 'ogv'],\r\n audio: ['mp3', 'wav', 'ogg'],\r\n font: ['ttf', 'otf', 'woff', 'woff2']\r\n};\r\n\r\nconst supportedFocusModeProperties = {\r\n [layers.text]: [\r\n 'data.adLayoutPositions',\r\n 'data.hidden',\r\n 'data.styles.fontSize',\r\n 'data.styles.autofitFontSize',\r\n 'data.styles.inFocusMode',\r\n 'data.styles.width',\r\n 'data.styles.scaledFontSize',\r\n 'data.styles.textAlign',\r\n 'data.styles.maxLines',\r\n 'data.styles.rotateAngle',\r\n 'data.styles.opacity',\r\n 'data.styles.autofit'\r\n ],\r\n [layers.button]: [\r\n 'data.adLayoutPositions',\r\n 'data.hidden',\r\n 'data.text.styles.fontSize',\r\n 'data.text.styles.isInFocusMode',\r\n 'data.text.styles.scaledFontSize',\r\n 'data.text.styles.canvasRelativeFontSize',\r\n 'data.text.styles.textAlign',\r\n 'data.text.styles.isTextLeftAligned',\r\n 'data.text.styles.width',\r\n 'data.text.styles.height',\r\n 'data.boundingRectangle.scaledHeight',\r\n 'data.boundingRectangle.scaledWidth',\r\n 'data.boundingRectangle.buttonHeight',\r\n 'data.boundingRectangle.buttonWidth',\r\n 'data.boundingRectangle.canvasRelativeHeight',\r\n 'data.boundingRectangle.canvasRelativeWidth',\r\n 'data.boundingRectangle.rxCornerRadius',\r\n 'data.boundingRectangle.ryCornerRadius',\r\n 'data.boundingRectangle.angle',\r\n 'data.text.styles.autofit',\r\n 'data.text.styles.autofitFontSize',\r\n 'data.text.styles.maxLines'\r\n ],\r\n [layers.image]: [\r\n 'data.adLayoutPositions',\r\n 'data.hidden',\r\n 'data.props',\r\n 'data.filters',\r\n 'data.styles.opacity',\r\n 'data.styles.scaleX',\r\n 'data.styles.scaleY',\r\n 'data.styles.defaultScaleX',\r\n 'data.styles.defaultScaleY',\r\n 'data.styles.selectedFit',\r\n 'data.styles.angle',\r\n 'data.styles.rotateAngle'\r\n ],\r\n [layers.shape]: [\r\n 'data.adLayoutPositions',\r\n 'data.hidden',\r\n 'data.styles.opacity',\r\n 'data.styles.scaleX',\r\n 'data.styles.scaleY',\r\n 'data.styles.angle',\r\n 'data.styles.top',\r\n 'data.styles.left',\r\n 'data.styles.path',\r\n 'data.styles.height',\r\n 'data.styles.width',\r\n 'data.styles.radius',\r\n 'data.styles.rx',\r\n 'data.styles.ry',\r\n 'data.styles.type'\r\n ],\r\n [layers.video]: [\r\n 'data.adLayoutPositions',\r\n 'data.hidden',\r\n 'data.props',\r\n 'data.styles.opacity',\r\n 'data.styles.scaleX',\r\n 'data.styles.scaleY',\r\n 'data.styles.angle'\r\n ],\r\n [layers.audio]: [\r\n 'data.adLayoutPositions',\r\n 'data.props'\r\n ],\r\n [layers.background]: [\r\n 'data.adLayoutPositions',\r\n 'data.hidden',\r\n 'data.imageProps'\r\n ],\r\n [layers.border]: [\r\n 'data.adLayoutPositions',\r\n 'data.hidden'\r\n ]\r\n};\r\n\r\nmodule.exports = {\r\n layers,\r\n layerIcons,\r\n layerColors,\r\n getLayerIcon,\r\n getLayerColor,\r\n reorderActions,\r\n layerReorderDisabledLayers,\r\n layerCloneDisabledLayers,\r\n layerLockDisabledLayers,\r\n layerHideDisabledLayers,\r\n mediaTypes,\r\n supportedMediaExtensions,\r\n supportedFocusModeProperties\r\n};","const shapes = Object.freeze([\r\n {\r\n id: 1,\r\n name: 'shapes-shape_rectangle_1',\r\n path: 'M 16 108.5 h 480 v 295 h -480 v -295 z'\r\n },\r\n {\r\n id: 2,\r\n name: 'shapes-shape_rectangle_2',\r\n path: 'M 476 403.5 h -440 c -11 0 -20 -9 -20 -20 v -255 c 0 -11 9 -20 20 -20 h 440 c 11 0 20 9 20 20 v 255 c 0 11 -9 20 -20 20 z'\r\n },\r\n {\r\n id: 3,\r\n name: 'shapes-shape_square_1',\r\n path: 'M 16 16 h 480 v 480 h -480 z'\r\n },\r\n {\r\n id: 4,\r\n name: 'shapes-shape_square_2',\r\n path: 'M 476 496 h -440 c -11 0 -20 -9 -20 -20 v -440 c 0 -11 9 -20 20 -20 h 440 c 11 0 20 9 20 20 v 440 c 0 11 -9 20 -20 20 z'\r\n },\r\n {\r\n id: 5,\r\n name: 'shapes-shape_circle',\r\n path: 'M 16 256 a 240 240 0 1 0 480 0 240 240 0 1 0 -480 0'\r\n },\r\n {\r\n id: 6,\r\n name: 'shapes-shape_oval',\r\n path: 'M 16 257 a 240 144 0 1 0 480 0 240 144 0 1 0 -480 0'\r\n },\r\n {\r\n id: 7,\r\n name: 'shapes-shape_triangle_1',\r\n path: 'M 256 48.5 l 240 415 h -480 z'\r\n },\r\n {\r\n id: 8,\r\n name: 'shapes-shape_triangle_2',\r\n path: 'M 496 473.5 h -480 c -3.6 0 -6.9 -1.9 -8.7 -5 -1.8 -3.1 -1.8 -6.9 0 -10 l 240 -415 c 1.8 -3.1 5.1 -5 8.7 -5 s 6.9 1.9 8.7 5 l 240 415 c 1.8 3.1 1.8 6.9 0 10 s -5.1 5 -8.7 5 z'\r\n },\r\n {\r\n id: 9,\r\n name: 'shapes-shape_triangle_3',\r\n path: 'M 16 48.5 l 480 415 h -480 z'\r\n },\r\n {\r\n id: 10,\r\n name: 'shapes-shape_polygon_1',\r\n path: 'M 256 27.7 l 240 174.4 -91.7 282.2 h -296.6 l -91.7 -282.2 z'\r\n },\r\n {\r\n id: 11,\r\n name: 'shapes-shape_polygon_2',\r\n path: 'M 256 15.8 l 208 120.1 v 240.2 l -208 120.1 -208 -120.1 v -240.2 z'\r\n },\r\n {\r\n id: 12,\r\n name: 'shapes-shape_polygon_3',\r\n path: 'M 256 22 l 192.5 92.7 47.5 208.3 -133.2 167 h -213.6 l -133.2 -167 47.5 -208.3 z'\r\n },\r\n {\r\n id: 13,\r\n name: 'shapes-shape_polygon_4',\r\n path: 'M 256 16 l 169.7 70.3 70.3 169.7 -70.3 169.7 -169.7 70.3 -169.7 -70.3 -70.3 -169.7 70.3 -169.7 z'\r\n },\r\n {\r\n id: 14,\r\n name: 'shapes-shape_polygon_5',\r\n path: 'M 256 19.6 l 156.6 57.1 83.4 144.3 -28.9 164.2 -127.7 107.2 h -166.8 l -127.7 -107.2 -28.9 -164.2 83.4 -144.3 z'\r\n },\r\n {\r\n id: 15,\r\n name: 'shapes-shape_star_1',\r\n path: 'M 256 406.3 l 148.3 78 -28.3 -165.2 120 -117 -165.8 -24.1 -74.2 -150.3 -74.2 150.3 -165.8 24.1 120 117 -28.3 165.2 z'\r\n },\r\n {\r\n id: 16,\r\n name: 'shapes-shape_star_2',\r\n path: 'M 256 136 l 120 -87.8 -16.1 147.8 136.1 60 -136.1 60 16.1 147.8 -120 -87.8 -120 87.8 16.1 -147.8 -136.1 -60 136.1 -60 -16.1 -147.8 z'\r\n },\r\n {\r\n id: 17,\r\n name: 'shapes-shape_star_3',\r\n path: 'M 256 126.1 l 99.4 -110.1 -7.6 148.2 148.2 -7.6 -110.1 99.4 110.1 99.4 -148.2 -7.6 7.6 148.2 -99.4 -110.1 -99.4 110.1 7.6 -148.2 -148.2 7.6 110.1 -99.4 -110.1 -99.4 148.2 7.6 -7.6 -148.2 z'\r\n },\r\n {\r\n id: 18,\r\n name: 'shapes-shape_heart_1',\r\n path: 'M 16 187.8 c 0 88.4 79.9 151.5 140 199 62.5 49.4 80 60 100 80 20 -20 36.7 -31.6 100 -80 61 -46.6 140 -111.6 140 -200 0 -129.8 -160 -200 -240 -80 -80 -119.9 -240 -49.7 -240 81 z'\r\n },\r\n {\r\n id: 19,\r\n name: 'shapes-shape_heart_2',\r\n path: 'M 16 170.1 c 0 82.9 74.9 142 131.3 186.6 58.6 46.3 90 71.3 108.7 90 18.8 -18.8 49.4 -44.7 108.7 -90 57.2 -43.7 131.3 -104.6 131.3 -187.5 0 -121.7 -165 -142.5 -240 -30 -75 -112.5 -240 -91.7 -240 30.9 z'\r\n },\r\n {\r\n id: 20,\r\n name: 'shapes-shape_badge_1',\r\n path: 'M 257.3 16.2 s -148 58.2 -204.4 81.4 c 0 75.7 -16.8 303.5 204.4 398.2 218.7 -94.6 201.9 -322.4 201.9 -398.2 -62.1 -23.6 -201.9 -81.4 -201.9 -81.4 z'\r\n },\r\n {\r\n id: 21,\r\n name: 'shapes-shape_badge_2',\r\n path: 'M 18.9 29.4 c 0 85.5 -47.1 453.2 237.1 453.2 s 237.1 -367 237.1 -453.2 h -474.2 z'\r\n },\r\n {\r\n id: 22,\r\n name: 'shapes-shape_badge_3',\r\n path: 'M 16 20.8 v 288.9 l 240 181.5 240 -181.5 v -288.9 h -480 z'\r\n },\r\n {\r\n id: 23,\r\n name: 'shapes-shape_badge_4',\r\n path: 'M 129.6 441.7 c -30.3 -15.1 -59 -29.3 -109.1 -29.3 -2.5 0 -4.5 -2 -4.5 -4.5 v -303.8 c 0 -2.5 2 -4.5 4.5 -4.5 50.1 0 78.8 -14.2 109.1 -29.3 32.2 -16 65.5 -32.5 126.3 -34.3 61 1.8 94.3 18.4 126.5 34.3 30.3 15.1 59 29.3 109.1 29.3 2.5 0 4.5 2 4.5 4.5 v 303.8 c 0 2.5 -2 4.5 -4.5 4.5 -50.1 0 -78.8 14.2 -109.1 29.3 -32.2 16 -65.5 32.5 -126.4 34.4 -60.9 -1.9 -94.2 -18.4 -126.4 -34.4 z'\r\n },\r\n {\r\n id: 24,\r\n name: 'shapes-shape_callout_1',\r\n path: 'M 256.5 496 c -33.9 0 -65.6 -21.1 -77.3 -51.4 -5 -12.2 -7 -25.5 -5.9 -39.3 -10.1 7.5 -21.1 12.4 -32.7 14.5 -4.3.9 -8.8 1.3 -13.3 1.3 -28.3 0 -55.3 -16.4 -70.6 -42.8 v .1 c -18.1 -30.6 -16.9 -70.3 3 -96.6 7.7 -10.7 18.2 -19.3 30.8 -25.3 -11.8 -5.3 -21.8 -12.9 -29.6 -22.5 -21.1 -25 -24.1 -64.3 -7.1 -95.6 14.9 -28.1 43.5 -46.3 73.1 -46.3 3.3 0 6.6 .2 9.8 .7 12.7 1.7 24.7 6.5 35.7 14.3 -1.3 -13 0 -25.4 4.1 -37 10.3 -31.1 41.8 -53.4 76.7 -54.1 h 2.3 c 33.9 0 65.6 21.1 77.4 51.4 5 12.2 7 25.4 5.9 39.3 10.1 -7.5 21.1 -12.4 32.7 -14.5 4.3 -.9 8.8 -1.3 13.3 -1.3 28.3 0 55.3 16.4 70.6 42.8 v -.1 c 18.1 30.6 16.9 70.2 -3 96.5 -7.8 10.8 -18.2 19.3 -30.9 25.3 11.9 5.3 21.8 12.9 29.6 22.5 21.1 25 24.1 64.2 7.1 95.5 -14.8 28.1 -43.5 46.3 -73.1 46.3 -3.3 0 -6.6 -.2 -9.7 -.7 -12.7 -1.7 -24.7 -6.5 -35.7 -14.3 1.3 13 0 25.4 -4.1 36.9 -10.2 31.3 -41.8 53.7 -76.8 54.3 -.7 .1 -1.5 .1 -2.3 .1 z'\r\n },\r\n {\r\n id: 25,\r\n name: 'shapes-shape_callout_2',\r\n path: 'M 252.9 496 c -45.5 0 -62.6 -50.7 -59.6 -88.3 -26.5 31.6 -71.7 48.3 -105.6 18.8 -36.3 -31.5 -13.4 -81.7 16.9 -107.6 -42.4 3 -84.5 -16.4 -88.4 -62.3 -4 -47.4 50.1 -66.3 88.2 -63.3 -31.8 -26.5 -48.1 -71.7 -18.8 -105.6 31.3 -36.4 81.8 -13.3 107.6 16.9 -2.7 -39.6 16.4 -88.5 62.4 -88.6 47.2 -.1 66.4 47.6 63.2 88.4 27.2 -31.3 71 -48.3 105.6 -18.8 36.6 31.2 13.2 82 -17 107.7 42.4 -3.2 84.5 16.4 88.4 62.2 4 47.3 -50 66.3 -88.2 63.3 31.2 27.1 47.9 70.1 19.3 104.9 -30.8 37.5 -82.2 14.2 -108.1 -16.2 3.3 42.5 -18.1 88.5 -65.9 88.5 z'\r\n },\r\n {\r\n id: 26,\r\n name: 'shapes-shape_callout_3',\r\n path: 'M 256 463.8 l -50.2 30.9 -33.2 -48.7 -58.4 7.9 -10.6 -58 -56.6 -16.6 13.9 -57.3 -44.9 -38.1 36 -46.7 -25.5 -53.1 51.9 -28 -1.7 -58.9 58.7 -4.5 22.4 -54.5 55.6 19.8 42.6 -40.7 42.6 40.7 55.6 -19.8 22.4 54.5 58.7 4.5 -1.7 58.9 51.9 28 -25.5 53.1 36 46.7 -44.9 38.1 13.9 57.3 -56.6 16.6 -10.6 58 -58.4 -7.9 -33.2 48.7 z'\r\n },\r\n {\r\n id: 27,\r\n name: 'shapes-shape_chat_bubble_1',\r\n path: 'M 256 99.7 c -132.6 0 -240 52.1 -240 116.4 0 37.8 37.2 71.4 94.9 92.7 -8.5 30.7 -20.8 61.7 -39.8 103.5 22 -13.7 78.4 -55.9 109.6 -85.7 23.7 3.8 49 5.9 75.3 5.9 132.5 0 240 -52.1 240 -116.4 0 -64.3 -107.5 -116.4 -240 -116.4'\r\n },\r\n {\r\n id: 28,\r\n name: 'shapes-shape_chat_bubble_2',\r\n path: 'M 448.7 32.9 h -385.4 c -26 0 -47.3 21.3 -47.3 47.3 v 240.7 c 0 26 21.3 47.3 47.3 47.3 h 275.1 c -16.6 41.4 -36.6 72.7 -82.4 110.9 0 0 99.3 -30.3 157.4 -110.9 h 35.3 c 26 0 47.3 -21.3 47.3 -47.3 v -240.7 c 0 -26 -21.3 -47.3 -47.3 -47.3 z'\r\n },\r\n {\r\n id: 29,\r\n name: 'shapes-shape_line',\r\n path: 'M 16 246 h 480 v 20 h -480 v -20'\r\n },\r\n {\r\n id: 30,\r\n name: 'shapes-shape_arrow_1',\r\n path: 'M 16 248.4 v 14.9 h 447.5 l -93.2 82.5 11.9 10.5 113.8 -100.2 -113.6 -100.4 -11.8 10.5 92.9 82.2 z'\r\n },\r\n {\r\n id: 31,\r\n name: 'shapes-shape_arrow_2',\r\n path: 'M 496 256 l -118.6 -66 v 40.8 h -361.4 v 50.4 h 361.4 v 40.8 l 118.6 -66 z'\r\n },\r\n {\r\n id: 32,\r\n name: 'shapes-shape_arrow_3',\r\n path: 'M 294.9 16.4 l 15.7 42.2 c -171.4 70.3 -294 242.3 -289.1 437.4 l 14.7 -1 c 9.1 -.6 18.1 -1.2 27.1 -1.9 l 14.7 -1 c -4.3 -170.1 102.5 -320 252 -381.3 l 15.7 42.2 c 34.7 -40.5 83.1 -76.6 144.8 -99.8 -58.1 -26.2 -124.9 -39.6 -195.6 -36.8 z'\r\n }\r\n])\r\n\r\nconst zeroHeightShapes = [29];\r\n\r\nconst nativeShapeTypes = Object.freeze({\r\n Circle: 'circle',\r\n Rectangle: 'rect',\r\n Ellipse: 'ellipse',\r\n Triangle: 'triangle',\r\n Polygon: 'polygon',\r\n Line: 'line'\r\n});\r\n\r\nconst nativeShapes = Object.freeze([\r\n {\r\n id: 33,\r\n name: 'shapes-native_shape_rectangle',\r\n path: 'M 476 403.5 h -440 c -11 0 -20 -9 -20 -20 v -255 c 0 -11 9 -20 21 -20 h 440 c 11 0 20 9 20 20 v 255 c 0 11 -9 20 -20 20 z',\r\n type: nativeShapeTypes.Rectangle\r\n },\r\n {\r\n id: 34,\r\n name: 'shapes-native_shape_circle',\r\n path: 'M 16 256 a 240 240 0 1 0 481 0 240 240 0 1 0 -480 0',\r\n type: nativeShapeTypes.Circle\r\n },\r\n {\r\n id: 35,\r\n name: 'shapes-native_shape_oval',\r\n path: 'M 16 257 a 241 144 0 1 0 480 0 240 144 0 1 0 -480 0',\r\n type: nativeShapeTypes.Ellipse\r\n },\r\n {\r\n id: 38,\r\n name: 'shapes-native_shape_line',\r\n path: 'M 16 246 h 480 v 20 h -481 v -20',\r\n type: nativeShapeTypes.Line\r\n },\r\n {\r\n id: 36,\r\n name: 'shapes-native_shape_triangle',\r\n path: 'M 256 48.5 l 240 416 h -480 z',\r\n type: nativeShapeTypes.Triangle\r\n },\r\n {\r\n id: 37,\r\n name: 'shapes-native_shape_polygon',\r\n path: 'M 256 27.7 l 241 174.4 -91.7 282.2 h -296.6 l -91.7 -282.2 z',\r\n type: nativeShapeTypes.Polygon\r\n }\r\n])\r\n\r\nconst supportedShapeStyles = {\r\n circle: ['angle', 'fill', 'fillGradient', 'isFillGradient', 'opacity', 'originX', 'originY', 'radius', 'scaleX', 'scaleY', 'stroke', 'strokeWidth', 'top', 'left'],\r\n rect: ['angle', 'fill', 'fillGradient', 'isFillGradient', 'opacity', 'originX', 'originY', 'scaleX', 'scaleY', 'stroke', 'strokeWidth', 'top', 'left', 'height', 'width', 'rx', 'ry'],\r\n triangle: ['angle', 'fill', 'fillGradient', 'isFillGradient', 'opacity', 'originX', 'originY', 'scaleX', 'scaleY', 'stroke', 'strokeWidth', 'top', 'left', 'height', 'width'],\r\n ellipse: ['angle', 'fill', 'fillGradient', 'isFillGradient', 'opacity', 'originX', 'originY', 'scaleX', 'scaleY', 'stroke', 'strokeWidth', 'top', 'left', 'rx', 'ry'],\r\n polygon: ['angle', 'fill', 'fillGradient', 'isFillGradient', 'opacity', 'originX', 'originY', 'scaleX', 'scaleY', 'stroke', 'strokeWidth', 'top', 'left'],\r\n line: ['angle', 'fill', 'fillGradient', 'isFillGradient', 'opacity', 'originX', 'originY', 'scaleX', 'scaleY', 'stroke', 'strokeWidth', 'top', 'left'],\r\n path: ['angle', 'fill', 'fillGradient', 'isFillGradient', 'opacity', 'originX', 'originY', 'scaleX', 'scaleY', 'stroke', 'strokeWidth', 'top', 'left']\r\n}\r\n\r\nconst nativeShapeDefaults = {\r\n rectangle: {\r\n rx: 0,\r\n ry: 0,\r\n height: 120,\r\n width: 160\r\n },\r\n circle: {\r\n radius: 60\r\n },\r\n ellipse: {\r\n rx: 80,\r\n ry: 50\r\n },\r\n triangle: {\r\n height: 130,\r\n width: 130\r\n },\r\n polygon: {\r\n points: [\r\n { x: 90, y: 20 },\r\n { x: 20, y: 60 },\r\n { x: 45, y: 140 },\r\n { x: 140, y: 140 },\r\n { x: 160, y: 60 }\r\n ]\r\n },\r\n line: {\r\n coordinates: [0, 0, 130, 0]\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n shapes,\r\n zeroHeightShapes,\r\n nativeShapeTypes,\r\n nativeShapes,\r\n supportedShapeStyles,\r\n nativeShapeDefaults\r\n};","const offlineFontInfo = require('../customFonts.json');\r\nconst customPublishApiFontInfo = require('../customPublishApiFonts.json');\r\nconst standardPublishApiFontInfo = require('../standardPublishApiFonts.json');\r\n\r\nconst fontStyles = {\r\n Bold: 1,\r\n Italic: 2,\r\n Underlined: 3,\r\n Overlined: 4,\r\n Strikedthrough: 5\r\n}\r\nconst standardFonts = [\r\n {\r\n 'name': 'Arial',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Arial Black',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Comic Sans MS',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Impact',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Charcoal',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Lucida Sans Unicode',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Lucida Grande',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Tahoma',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Trebuchet MS',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Verdana',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Courier New',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Lucida Console',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n },\r\n {\r\n 'name': 'Bold',\r\n 'value': 700\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Palatino Linotype',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Book Antiqua',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Georgia',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n }\r\n ]\r\n },\r\n {\r\n 'name': 'Times New Roman',\r\n 'variants': [\r\n {\r\n 'name': 'Regular',\r\n 'value': 400\r\n }\r\n ]\r\n }\r\n]\r\nconst fontInfo = offlineFontInfo.concat(standardFonts);\r\nconst fontFamilies = fontInfo.map(font => ({ name: font.name })).sort((a, b) => a.name.localeCompare(b.name));\r\nconst offlineFontFamilies = offlineFontInfo.map(font => font.name).sort();\r\nconst standardFontFamilies = standardFonts.map(font => font.name).sort();\r\nconst availablePublishApiFontInfo = standardFonts.concat(standardPublishApiFontInfo);\r\nconst customPublishApiFontFamilies = customPublishApiFontInfo.map(font => ({ name: font.name })).sort((a, b) => a.name.localeCompare(b.name));\r\nconst availablePublishApiFontFamilies = availablePublishApiFontInfo.map(font => ({ name: font.name })).sort((a, b) => a.name.localeCompare(b.name));\r\nconst publishApiFontInfo = customPublishApiFontInfo.concat(availablePublishApiFontFamilies);\r\nconst publishApiFontFamilies = publishApiFontInfo.map(font => ({ name: font.name })).sort((a, b) => a.name.localeCompare(b.name));\r\nconst textBoxPaddingOffset = 0.01;\r\nconst textBoxRightProximityFactor = 0.98;\r\nconst customFontData = offlineFontInfo.map(font => {\r\n let variantsInFvdNotation =\r\n font.variants\r\n .map(variant => [`n${variant.value.toString()[0]}`, `i${variant.value.toString()[0]}`])\r\n .reduce((acc, val) => acc.concat(val), []); // Alternative for flat()\r\n return {\r\n name: font.name,\r\n fvdNotation: `${font.name}:${variantsInFvdNotation.join(',')}`\r\n };\r\n})\r\n\r\nconst canvasRelativeTextSizes = {\r\n Heading: parseFloat(26 / 62500),\r\n Subheading: parseFloat(20 / 62500),\r\n Body: parseFloat(18 / 62500)\r\n}\r\n\r\nconst fontCases = {\r\n Lower: 1,\r\n Upper: 2,\r\n Capitalized: 3\r\n}\r\n\r\nconst scripts = {\r\n Subscripted: 1,\r\n Superscripted: 2\r\n}\r\n\r\nconst defaultTextBackgroundOptions = {\r\n padding: {\r\n top: 10,\r\n right: 10,\r\n bottom: 8,\r\n left: 10\r\n },\r\n cornerRadius: {\r\n topLeft: 0,\r\n topRight: 0,\r\n bottomLeft: 0,\r\n bottomRight: 0\r\n },\r\n skew: {\r\n skewX: 0,\r\n skewY: 0\r\n }\r\n}\r\n\r\nconst levels = {\r\n layer: 'layer',\r\n letter: 'letter',\r\n word: 'word',\r\n line: 'line'\r\n}\r\n\r\nconst textAnimationLevels = [levels.letter, levels.word, levels.line];\r\n\r\nconst fontWeightMappings = {\r\n thin: 100,\r\n 'ultra light': 200,\r\n 'extra light': 200,\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n 'demi bold': 600,\r\n 'semi bold': 600,\r\n bold: 700,\r\n 'extra bold': 800,\r\n 'super bold': 800,\r\n 'ultra bold': 800,\r\n black: 900,\r\n heavy: 900\r\n}\r\n\r\nconst fontWeightNameMapping = {\r\n 100: 'Hairline',\r\n 200: 'Ultra Light',\r\n 300: 'Light',\r\n 400: 'Regular',\r\n 500: 'Medium',\r\n 600: 'Semi Bold',\r\n 700: 'Bold',\r\n 800: 'Extra Bold',\r\n 900: 'Black'\r\n};\r\n\r\nconst fontStyleMappings = {\r\n italic: 'italic',\r\n oblique: 'oblique',\r\n normal: 'normal',\r\n regular: 'normal'\r\n}\r\n\r\nmodule.exports = {\r\n fontStyles,\r\n standardFonts,\r\n fontInfo,\r\n fontFamilies,\r\n offlineFontFamilies,\r\n standardFontFamilies,\r\n availablePublishApiFontInfo,\r\n customPublishApiFontFamilies,\r\n availablePublishApiFontFamilies,\r\n publishApiFontInfo,\r\n publishApiFontFamilies,\r\n textBoxPaddingOffset,\r\n textBoxRightProximityFactor,\r\n customFontData,\r\n canvasRelativeTextSizes,\r\n fontCases,\r\n scripts,\r\n defaultTextBackgroundOptions,\r\n levels,\r\n textAnimationLevels,\r\n fontWeightMappings,\r\n fontWeightNameMapping,\r\n fontStyleMappings\r\n};","const variables = {\r\n text: 'Text'\r\n};\r\n\r\nconst variableIcons = {\r\n text: 'mdi-text-shadow'\r\n};\r\n\r\nconst variableColors = {\r\n text: 'orange'\r\n};\r\n\r\nconst getVariableIcon = function(variableType) {\r\n switch (variableType) {\r\n case variables.text:\r\n return variableIcons.text;\r\n }\r\n};\r\n\r\nconst getVariableColor = function(variableType) {\r\n switch (variableType) {\r\n case variables.text:\r\n return variableColors.text;\r\n }\r\n};\r\n\r\nconst supportedFocusModeVariableProperties = {\r\n [variables.text]: [\r\n 'data.styles.fontSize',\r\n 'data.styles.autofitFontSize',\r\n 'data.styles.scaledFontSize',\r\n 'data.styles.rotateAngle',\r\n 'data.styles.opacity'\r\n ]\r\n};\r\n\r\nconst getSupportedVariableProperties = [\r\n 'fill',\r\n 'fontSize',\r\n 'fontFamily',\r\n 'fontWeight',\r\n 'fontStyle',\r\n 'stroke',\r\n 'strokeWidth'\r\n];\r\n\r\nmodule.exports = {\r\n variables,\r\n variableIcons,\r\n variableColors,\r\n getVariableIcon,\r\n getVariableColor,\r\n supportedFocusModeVariableProperties,\r\n getSupportedVariableProperties\r\n};\r\n","const { v4: uuidv4 } = require('uuid');\r\nconst { layers } = require('./layers');\r\nconst { variables } = require('./variables');\r\n\r\nconst variantTypes = {\r\n Base: 0,\r\n Segment: 1,\r\n // Deprecated Product, Store and Language and used in hottable cell types\r\n Product: 2,\r\n Store: 3,\r\n MVT: 4,\r\n Language: 5\r\n}\r\n\r\nconst variantImageDensityTypes = {\r\n Default: 'type-default',\r\n Comfortable: 'type-comfortable',\r\n Compact: 'type-compact'\r\n}\r\n\r\nconst baseVariant = {\r\n id: uuidv4(),\r\n meta: {\r\n name: 'Default',\r\n language: null\r\n },\r\n type: variantTypes.Base,\r\n layers: [],\r\n variables: [],\r\n computedProperties: { product: null, store: null }\r\n};\r\n\r\nconst macroTypes = {\r\n Product: 'product',\r\n Store: 'store'\r\n}\r\n\r\nfunction attributes(data) {\r\n return (data && Object.keys(data)) || [];\r\n}\r\n\r\nfunction macroExpression(attributes, macroType) {\r\n if (attributes.length > 0) {\r\n // Allow both space and underscore as phrase attribute delimiter\r\n switch(macroType) {\r\n case macroTypes.Product:\r\n return new RegExp(`{{\\\\s*product.(${attributes.map(a => a.replace('_', '[_\\\\s]*')).join('|')})\\\\s*}}`, 'i');\r\n case macroTypes.Store:\r\n return new RegExp(`{{\\\\s*store.(${attributes.map(a => a.replace('_', '[_\\\\s]*')).join('|')})\\\\s*}}`, 'i');\r\n }\r\n } else {\r\n return new RegExp(/(?!)/);\r\n }\r\n}\r\n\r\n// Node doesn't accept only getters for object properties. Setting dummy setters for now.\r\nconst computedVariants = {\r\n mvt: {\r\n collection: [],\r\n selected: null,\r\n getCombination(id) {\r\n if (id < 1 || id > this.length) throw new RangeError();\r\n return this.collection.reduceRight(({ combination, offset }, layerVariants) => {\r\n if (Array.isArray(layerVariants) && layerVariants.length) {\r\n combination.unshift(\r\n layerVariants[parseInt(((id - 1) % (layerVariants.length * offset)) / offset)]\r\n )\r\n offset *= layerVariants.length;\r\n }\r\n return { combination, offset }\r\n },\r\n {\r\n combination: [],\r\n offset: 1\r\n }).combination;\r\n },\r\n get length() {\r\n return this.collection.reduce((total, layerVariants) => {\r\n return (Array.isArray(layerVariants) && layerVariants.length) ? (total * layerVariants.length) : total;\r\n }, 1)\r\n },\r\n set length(values) {\r\n // do nothing\r\n },\r\n get combinations() {\r\n return new Array(this.length)\r\n .fill(null)\r\n .map((_, i) => ({ id: i + 1, name: `Combination #${i + 1}` }))\r\n },\r\n set combinations(values) {\r\n // do nothing\r\n }\r\n }\r\n}\r\n\r\n// For usage fetching product in externalTools\r\nconst AdvancedSettingsFilterTypes = Object.freeze({\r\n INCLUDE: { id: 1, name: 'includes' },\r\n EXCLUDE: { id: 2, name: 'excludes' },\r\n STARTS_WITH: { id: 3, name: 'starts with' },\r\n GREATER_THAN: { id: 4, name: 'greater than' },\r\n LESSER_THAN: { id: 5, name: 'lesser than' },\r\n EQUALS: { id: 6, name: 'equals' },\r\n DOESNOTEQUALS: { id: 7, name: 'not equals' }\r\n})\r\n\r\nconst additionalVariantProperties = [\r\n {\r\n name: 'Language',\r\n type: variantTypes.Language,\r\n enabled: false\r\n },\r\n {\r\n name: 'Product',\r\n type: variantTypes.Product,\r\n enabled: false\r\n },\r\n {\r\n name: 'Store',\r\n type: variantTypes.Store,\r\n enabled: false\r\n }\r\n]\r\n\r\nconst variantConfigurationBase = {\r\n variantType: variantTypes.Base,\r\n variants: [\r\n baseVariant\r\n ],\r\n baseVariant,\r\n selectedVariant: Object.values(variantTypes).reduce((sv, typeId) => (sv[typeId] = baseVariant) && sv, {}),\r\n primaryVariant: Object.values(variantTypes).reduce((pv, typeId) => (pv[typeId] = baseVariant) && pv, {}),\r\n computedVariants\r\n}\r\n\r\n// Keeping values as objects for these maps to make adding properties easier\r\n// Only properties listed here will be shown in the table (because we need equivalent language-based label)\r\n// Properties not present here but part of API response for GET /products can still be used in macros\r\nconst variantProductAttributesMap = {\r\n id: { mapping: 'id' },\r\n imageLink: { mapping: 'imageLink' },\r\n searchEngineProductId: { mapping: 'searchEngineProductId' },\r\n itemGroupId: { mapping: 'itemGroupId' },\r\n title: { mapping: 'title' },\r\n description: { mapping: 'description' },\r\n availability: { mapping: 'availability' },\r\n condition: { mapping: 'condition' },\r\n brand: { mapping: 'brand' },\r\n ageGroup: { mapping: 'ageGroup' },\r\n gender: { mapping: 'gender' },\r\n googleProductCategory: { mapping: 'googleProductCategory' },\r\n material: { mapping: 'material' },\r\n pattern: { mapping: 'pattern' },\r\n productType: { mapping: 'productType' },\r\n salePrice: { mapping: 'salePrice' },\r\n price: { mapping: 'price' },\r\n mpn: { mapping: 'mpn' },\r\n gtin: { mapping: 'gtin' },\r\n link: { mapping: 'link' },\r\n additionalImageLink: { mapping: 'additionalImageLink' },\r\n color: { mapping: 'color' },\r\n size: { mapping: 'size' },\r\n sku: { mapping: 'sku' }\r\n}\r\n\r\nconst variantStoreAttributesMap = {\r\n id: { mapping: 'id' },\r\n storeCode: { mapping: 'storeCode' },\r\n name: { mapping: 'name' },\r\n phoneNumber: { mapping: 'phoneNumber' },\r\n address: { mapping: 'address' },\r\n area: { mapping: 'area' },\r\n city: { mapping: 'city' },\r\n state: { mapping: 'state' },\r\n country: { mapping: 'country' },\r\n postalCode: { mapping: 'postalCode' },\r\n emailAddress: { mapping: 'emailAddress' },\r\n website: { mapping: 'website' },\r\n latitude: { mapping: 'latitude' },\r\n longitude: { mapping: 'longitude' },\r\n radius: { mapping: 'radius' },\r\n radiusUnit: { mapping: 'radiusUnit' },\r\n facebookLocationId: { mapping: 'facebookLocationId' },\r\n facebookPageId: { mapping: 'facebookPageId' },\r\n trackingPixel: { mapping: 'trackingPixel' },\r\n instagramAccountId: { mapping: 'instagramAccountId' },\r\n googleMerchantId: { mapping: 'googleMerchantId' },\r\n keywords: { mapping: 'keywords' },\r\n timingMonday: { mapping: 'timingMonday' },\r\n timingTuesday: { mapping: 'timingTuesday' },\r\n timingWednesday: { mapping: 'timingWednesday' },\r\n timingThursday: { mapping: 'timingThursday' },\r\n timingFriday: { mapping: 'timingFriday' },\r\n timingSaturday: { mapping: 'timingSaturday' },\r\n timingSunday: { mapping: 'timingSunday' },\r\n startDate: { mapping: 'startDate' },\r\n endDate: { mapping: 'endDate' }\r\n}\r\n\r\nfunction getVariantName(variant) {\r\n switch(this.variantType) {\r\n case variantTypes.MVT:\r\n return `${variant.id} / ${this.mvtVariants.length}`;\r\n default:\r\n return variant.meta.name;\r\n }\r\n}\r\n\r\nconst variantPropertyGroups = {\r\n CONTENT: 'Content',\r\n STYLE: 'Style',\r\n LAYOUT: 'Layout',\r\n TEXTSTYLE: 'Text Style',\r\n BUTTONSTYLE: 'Button Style'\r\n};\r\n\r\nconst variantPropertyTypes = {\r\n NUMBER: 'number',\r\n STRING: 'string',\r\n HEX: 'hex',\r\n URL: 'url',\r\n BOOLEAN: 'boolean',\r\n ARRAY: 'array',\r\n OBJECT: 'object'\r\n};\r\n\r\nconst variantProperties = {\r\n text: {\r\n id: 'text',\r\n displayName: 'Text',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'text',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n font: {\r\n id: 'font',\r\n displayName: 'Font',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.fontFamily',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n fontSize: {\r\n id: 'fontSize',\r\n displayName: 'Font Size',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.scaledFontSize',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n strokeWidth: {\r\n id: 'strokeWidth',\r\n displayName: 'Stroke Width',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.strokeWidth',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n fill: {\r\n id: 'fill',\r\n displayName: 'Fill',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.fill',\r\n value: '',\r\n type: variantPropertyTypes.HEX,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n stroke: {\r\n id: 'stroke',\r\n displayName: 'Stroke',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.stroke',\r\n value: '',\r\n type: variantPropertyTypes.HEX,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n backgroundColor: {\r\n id: 'backgroundColor',\r\n displayName: 'Background Color',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.textBackgroundColor',\r\n value: '',\r\n type: variantPropertyTypes.HEX,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n opacity: {\r\n id: 'opacity',\r\n displayName: 'Opacity',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.opacity',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n textWidth: {\r\n id: 'textWidth',\r\n displayName: 'Width',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'styles.width',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n textCase: {\r\n id: 'textCase',\r\n displayName: 'Text Case',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.textCase',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n rotate: {\r\n id: 'rotate',\r\n displayName: 'Rotate',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'styles.angle',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n image: {\r\n id: 'image',\r\n displayName: 'Image',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.imageUrl',\r\n value: '',\r\n type: variantPropertyTypes.URL,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n imageId: {\r\n id: 'imageId',\r\n displayName: 'Image Id',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.imageId',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n businessProfileId: {\r\n id: 'businessProfileId',\r\n displayName: 'Business Profile Id',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.businessProfileId',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n width: {\r\n id: 'width',\r\n displayName: 'Width',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.width',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n height: {\r\n id: 'height',\r\n displayName: 'Height',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.height',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n scaleX: {\r\n id: 'scaleX',\r\n displayName: 'ScaleX',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'styles.scaleX',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n scaleY: {\r\n id: 'scaleY',\r\n displayName: 'ScaleY',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'styles.scaleY',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n blendMode: {\r\n id: 'blendMode',\r\n displayName: 'Blend Mode',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'filters.globalBlend.operation',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n bgRemovedUrl: {\r\n id: 'bgRemovedUrl',\r\n displayName: 'Bg Removed Url',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'filters.bgRemove.bgRemovedUrl',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n fgRemovedUrl: {\r\n id: 'fgRemovedUrl',\r\n displayName: 'Fg Removed Url',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'filters.inpaintForeground.fgRemovedUrl',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n buttonText: {\r\n id: 'buttonText',\r\n displayName: 'Text',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'text.text',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n buttonFont: {\r\n id: 'buttonFont',\r\n displayName: 'Font',\r\n group: variantPropertyGroups.TEXTSTYLE,\r\n path: 'text.styles.fontFamily',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n buttonFontSize: {\r\n id: 'buttonFontSize',\r\n displayName: 'Font Size',\r\n group: variantPropertyGroups.TEXTSTYLE,\r\n path: 'text.styles.scaledFontSize',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n buttonTextFill: {\r\n id: 'buttonTextFill',\r\n displayName: 'Text Fill',\r\n group: variantPropertyGroups.TEXTSTYLE,\r\n path: 'text.styles.fill',\r\n value: '',\r\n type: variantPropertyTypes.HEX,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n buttonTextStroke: {\r\n id: 'buttonTextStroke',\r\n displayName: 'Text Stroke',\r\n group: variantPropertyGroups.TEXTSTYLE,\r\n path: 'text.styles.stroke',\r\n value: '',\r\n type: variantPropertyTypes.HEX,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n buttonTextStrokeWidth: {\r\n id: 'buttonTextStrokeWidth',\r\n displayName: 'Text Stroke Width',\r\n group: variantPropertyGroups.TEXTSTYLE,\r\n path: 'text.styles.strokeWidth',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n buttonStyle: {\r\n id: 'buttonStyle',\r\n displayName: 'Outline',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'boundingRectangle.outline',\r\n value: false,\r\n type: variantPropertyTypes.BOOLEAN,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n buttonShape: {\r\n id: 'buttonShape',\r\n displayName: 'Shape',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'boundingRectangle.cornerStyle',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n buttonSize: {\r\n id: 'buttonSize',\r\n displayName: 'Size',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: '',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n buttonWidth: {\r\n id: 'buttonWidth',\r\n displayName: 'Width',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'boundingRectangle.scaledWidth',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n buttonHeight: {\r\n id: 'buttonHeight',\r\n displayName: 'Height',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'boundingRectangle.scaledHeight',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n buttonColor: {\r\n id: 'buttonColor',\r\n displayName: 'Color',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'boundingRectangle.fill',\r\n value: '',\r\n type: variantPropertyTypes.HEX,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n cornerRadiusX: {\r\n id: 'cornerRadiusX',\r\n displayName: 'Corner Radius X',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'boundingRectangle.rxCornerRadius',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n cornerRadiusY: {\r\n id: 'cornerRadiusY',\r\n displayName: 'Corner Radius Y',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'boundingRectangle.ryCornerRadius',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n buttonRotate: {\r\n id: 'buttonRotate',\r\n displayName: 'Rotate',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'boundingRectangle.angle',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n buttonBlendMode: {\r\n id: 'buttonBlendMode',\r\n displayName: 'Blend Mode',\r\n group: variantPropertyGroups.BUTTONSTYLE,\r\n path: 'filters.globalBlend.operation',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n shapeType: {\r\n id: 'shapeType',\r\n displayName: 'ShapeType',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'type',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false\r\n },\r\n shape: {\r\n id: 'shape',\r\n displayName: 'Shape',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'path',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n shapeRotate: {\r\n id: 'shapeRotate',\r\n displayName: 'Rotate',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'styles.angle',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n shapeRadius: {\r\n id: 'shapeRadius',\r\n displayName: 'Radius',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.radius',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n shapeCornerRadiusY: {\r\n id: 'shapeCornerRadiusY',\r\n displayName: 'Corner Radius - Y',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.ry',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n shapeCornerRadiusX: {\r\n id: 'shapeCornerRadiusX',\r\n displayName: 'Corner Radius - X',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.rx',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n shapeHeight: {\r\n id: 'shapeHeight',\r\n displayName: 'Height',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.height',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n shapeWidth: {\r\n id: 'shapeWidth',\r\n displayName: 'Width',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.width',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n polygonPoints: {\r\n id: 'polygonPoints',\r\n displayName: 'Points',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'polygonPoints',\r\n value: [],\r\n type: variantPropertyTypes.ARRAY,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n lineCoordinates: {\r\n id: 'lineCoordinates',\r\n displayName: 'Coordinates',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'lineCoordinates',\r\n value: [],\r\n type: variantPropertyTypes.ARRAY,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n video: {\r\n id: 'video',\r\n displayName: 'Video',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.src',\r\n value: '',\r\n type: variantPropertyTypes.URL,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n duration: {\r\n id: 'duration',\r\n displayName: 'Duration',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.duration',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n loop: {\r\n id: 'loop',\r\n displayName: 'Loop',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.loop',\r\n value: false,\r\n type: variantPropertyTypes.BOOLEAN,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n videoRotate: {\r\n id: 'videoRotate',\r\n displayName: 'Rotate',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'styles.angle',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n audio: {\r\n id: 'audio',\r\n displayName: 'Audio',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.src',\r\n value: '',\r\n type: variantPropertyTypes.URL,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n audioTtsText: {\r\n id: 'audioTtsText',\r\n displayName: 'TTS text',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.ttsConfiguration.text',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n audioTtsData: {\r\n id: 'audioTtsData',\r\n displayName: 'TTS Data',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.ttsConfiguration.data',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n language: {\r\n id: 'language',\r\n displayName: 'Language',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'props.ttsConfiguration.voice.languageCode',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n voiceName: {\r\n id: 'voiceName',\r\n displayName: 'Voice Name',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'props.ttsConfiguration.voice.name',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n speed: {\r\n id: 'speed',\r\n displayName: 'Speed',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'props.ttsConfiguration.speakingRate',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n pitch: {\r\n id: 'pitch',\r\n displayName: 'Pitch',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'props.ttsConfiguration.pitch',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: true,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n subtitle: {\r\n id: 'subtitle',\r\n displayName: 'Subtitle',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'text',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n backgroundImage: {\r\n id: 'backgroundImage',\r\n displayName: 'Image',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'imageProps.imageUrl',\r\n value: '',\r\n type: variantPropertyTypes.URL,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n backgroundImageId: {\r\n id: 'backgroundImageId',\r\n displayName: 'Image Id',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'imageProps.imageId',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n backgroundImageBusinessProfileId: {\r\n id: 'backgroundImageBusinessProfileId',\r\n displayName: 'Business Profile Id',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'imageProps.businessProfileId',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n backgroundImageWidth: {\r\n id: 'backgroundImageWidth',\r\n displayName: 'Width',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'imageProps.width',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n backgroundImageHeight: {\r\n id: 'backgroundImageHeight',\r\n displayName: 'Height',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'imageProps.height',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n colorProps: {\r\n id: 'colorProps',\r\n displayName: 'Color',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'colorProps.colors.rgba',\r\n value: '',\r\n type: variantPropertyTypes.HEX,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n backgroundImageFit: {\r\n id: 'backgroundImageFit',\r\n displayName: 'Fit',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'imageProps.selectedFit',\r\n value: 0,\r\n type: variantPropertyTypes.NUMBER,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: true\r\n },\r\n mediaId: {\r\n id: 'mediaId',\r\n displayName: 'Id',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.id',\r\n value: '',\r\n type: variantPropertyTypes.STRING,\r\n hasValidations: false,\r\n editable: false,\r\n supportsFocusMode: true\r\n },\r\n imageSources: {\r\n id: 'imageSources',\r\n displayName: 'Images',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.sources',\r\n value: [],\r\n type: variantPropertyTypes.ARRAY,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n isSplitByGrapheme: {\r\n id: 'splitId',\r\n displayName: 'Split By Character',\r\n group: variantPropertyGroups.STYLE,\r\n path: 'styles.splitByGrapheme',\r\n value: false,\r\n type: variantPropertyTypes.BOOLEAN,\r\n hasValidations: false,\r\n editable: true,\r\n supportsFocusMode: false\r\n },\r\n translate: {\r\n id: 'translate',\r\n displayName: 'Translate',\r\n group: variantPropertyGroups.CONTENT,\r\n path: '',\r\n value: true,\r\n type: variantPropertyTypes.BOOLEAN,\r\n hasValidations: true,\r\n editable: true\r\n },\r\n absolutePosition: {\r\n id: 'absolutePosition',\r\n displayName: 'Absolute position',\r\n group: variantPropertyGroups.LAYOUT,\r\n path: 'absolutePosition',\r\n value: null,\r\n type: variantPropertyTypes.OBJECT,\r\n hasValidations: true,\r\n editable: true\r\n },\r\n visibility: {\r\n id: 'visibility',\r\n displayName: 'Visibility',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'hidden',\r\n value: false,\r\n type: variantPropertyTypes.BOOLEAN,\r\n hasValidations: false,\r\n editable: true\r\n },\r\n audioTtsApiCallRequired: {\r\n id: 'audioTtsApiCallRequired',\r\n displayName: 'Audio TTS Api Call Required',\r\n group: variantPropertyGroups.CONTENT,\r\n path: 'props.ttsConfiguration.isApiCallRequired',\r\n value: false,\r\n type: variantPropertyTypes.BOOLEAN,\r\n hasValidations: false,\r\n editable: false\r\n }\r\n};\r\n\r\nconst variantPropertyPaths = Object.keys(variantProperties).reduce((variantPropertyPaths, key) => {\r\n variantPropertyPaths[key] = variantProperties[key].path;\r\n return variantPropertyPaths;\r\n}, {});\r\n\r\nconst variantLayerProperties = {\r\n [layers.text]: [\r\n variantProperties.text,\r\n variantProperties.font,\r\n variantProperties.fontSize,\r\n variantProperties.strokeWidth,\r\n variantProperties.textCase,\r\n variantProperties.fill,\r\n variantProperties.stroke,\r\n variantProperties.backgroundColor,\r\n variantProperties.textWidth,\r\n variantProperties.rotate,\r\n variantProperties.blendMode,\r\n variantProperties.isSplitByGrapheme,\r\n variantProperties.translate,\r\n variantProperties.absolutePosition,\r\n variantProperties.visibility\r\n ],\r\n [layers.button]: [\r\n variantProperties.buttonText,\r\n variantProperties.buttonFont,\r\n variantProperties.buttonTextFill,\r\n variantProperties.buttonTextStroke,\r\n variantProperties.buttonTextStrokeWidth,\r\n variantProperties.buttonStyle,\r\n variantProperties.buttonShape,\r\n variantProperties.buttonColor,\r\n variantProperties.cornerRadiusX,\r\n variantProperties.cornerRadiusY,\r\n variantProperties.buttonRotate,\r\n variantProperties.buttonBlendMode,\r\n variantProperties.translate,\r\n variantProperties.absolutePosition,\r\n variantProperties.visibility\r\n ],\r\n [layers.shape]: [\r\n variantProperties.shape,\r\n variantProperties.shapeType,\r\n variantProperties.polygonPoints,\r\n variantProperties.lineCoordinates,\r\n variantProperties.stroke,\r\n variantProperties.fill,\r\n variantProperties.strokeWidth,\r\n variantProperties.opacity,\r\n variantProperties.scaleX,\r\n variantProperties.scaleY,\r\n variantProperties.shapeRotate,\r\n variantProperties.blendMode,\r\n variantProperties.shapeRadius,\r\n variantProperties.shapeCornerRadiusY,\r\n variantProperties.shapeCornerRadiusX,\r\n variantProperties.shapeHeight,\r\n variantProperties.shapeWidth,\r\n variantProperties.absolutePosition,\r\n variantProperties.visibility\r\n ],\r\n [layers.image]: [\r\n variantProperties.image,\r\n variantProperties.imageId,\r\n variantProperties.businessProfileId,\r\n variantProperties.width,\r\n variantProperties.height,\r\n variantProperties.rotate,\r\n variantProperties.opacity,\r\n variantProperties.blendMode,\r\n variantProperties.bgRemovedUrl,\r\n variantProperties.fgRemovedUrl,\r\n variantProperties.imageSources,\r\n variantProperties.absolutePosition,\r\n variantProperties.visibility\r\n ],\r\n [layers.video]: [\r\n variantProperties.video,\r\n variantProperties.mediaId,\r\n variantProperties.width,\r\n variantProperties.height,\r\n variantProperties.duration,\r\n variantProperties.loop,\r\n variantProperties.videoRotate,\r\n variantProperties.blendMode,\r\n variantProperties.absolutePosition,\r\n variantProperties.visibility\r\n ],\r\n [layers.audio]: [\r\n variantProperties.audio,\r\n variantProperties.mediaId,\r\n variantProperties.duration,\r\n variantProperties.audioTtsText,\r\n variantProperties.audioTtsData,\r\n variantProperties.language,\r\n variantProperties.voiceName,\r\n variantProperties.pitch,\r\n variantProperties.speed,\r\n variantProperties.visibility,\r\n variantProperties.audioTtsApiCallRequired\r\n ],\r\n [layers.subtitle]: [variantProperties.subtitle],\r\n [layers.background]: [\r\n variantProperties.backgroundImage,\r\n variantProperties.backgroundImageId,\r\n variantProperties.backgroundImageBusinessProfileId,\r\n variantProperties.backgroundImageWidth,\r\n variantProperties.backgroundImageHeight,\r\n variantProperties.colorProps,\r\n variantProperties.backgroundImageFit,\r\n variantProperties.visibility\r\n ]\r\n};\r\n\r\nconst variantVariableProperties = {\r\n [variables.text]: [\r\n variantProperties.text,\r\n variantProperties.font,\r\n variantProperties.fontSize,\r\n variantProperties.fill,\r\n variantProperties.isSplitByGrapheme\r\n ]\r\n};\r\n\r\nconst variantLayerPropertyDefaults = {\r\n [layers.text]: [variantProperties.text],\r\n [layers.button]: [variantProperties.buttonText],\r\n [layers.shape]: [variantProperties.shape, variantProperties.shapeType],\r\n [layers.image]:\r\n [\r\n variantProperties.image,\r\n variantProperties.imageId,\r\n variantProperties.businessProfileId,\r\n variantProperties.width,\r\n variantProperties.height,\r\n variantProperties.bgRemovedUrl,\r\n variantProperties.fgRemovedUrl\r\n ],\r\n [layers.video]:\r\n [\r\n variantProperties.video,\r\n variantProperties.mediaId,\r\n variantProperties.width,\r\n variantProperties.height,\r\n variantProperties.duration\r\n ],\r\n [layers.audio]:\r\n [\r\n variantProperties.audio,\r\n variantProperties.mediaId,\r\n variantProperties.duration\r\n ],\r\n [layers.subtitle]: [variantProperties.subtitle],\r\n [layers.background]:\r\n [\r\n variantProperties.colorProps\r\n ]\r\n};\r\n\r\nconst variantVariablePropertyDefaults = {\r\n [variables.text]: [variantProperties.text]\r\n};\r\n\r\nconst requireDependentProperties = [\r\n variantProperties.image,\r\n variantProperties.video,\r\n variantProperties.audio,\r\n variantProperties.shape,\r\n variantProperties.backgroundImage,\r\n variantProperties.audioTtsText,\r\n variantProperties.language,\r\n variantProperties.voiceName\r\n];\r\n\r\nconst scaledProperties = [\r\n variantPropertyPaths.fontSize,\r\n variantPropertyPaths.scaleX,\r\n variantPropertyPaths.scaleY,\r\n variantPropertyPaths.buttonFontSize,\r\n variantPropertyPaths.buttonWidth,\r\n variantPropertyPaths.buttonHeight,\r\n variantPropertyPaths.opacity\r\n];\r\n\r\n//Gets layerData property name from path. Used for updating multiple sources festure.\r\nconst propertyName = (path) => {\r\n const variantPropertyName = Object.keys(variantPropertyPaths).find(key => variantPropertyPaths[key] === path);\r\n if (variantPropertyName == 'image')\r\n return 'imageUrl';\r\n return variantPropertyName;\r\n}\r\n\r\nconst audioTtsProps = [\r\n variantProperties.audioTtsText,\r\n variantProperties.language,\r\n variantProperties.voiceName,\r\n variantProperties.pitch,\r\n variantProperties.speed\r\n];\r\n\r\nconst feedSheetTypes = {\r\n GOOGLE_SHEET: 1\r\n}\r\n\r\nconst hotDataChangeSources = {\r\n LOADDATA: 'loadData',\r\n EDIT: 'edit',\r\n PASTE: 'CopyPaste.paste',\r\n AUTOFILL: 'Autofill.fill'\r\n};\r\n\r\nmodule.exports = {\r\n variantTypes,\r\n variantImageDensityTypes,\r\n baseVariant,\r\n macroTypes,\r\n attributes,\r\n macroExpression,\r\n computedVariants,\r\n AdvancedSettingsFilterTypes,\r\n additionalVariantProperties,\r\n variantConfigurationBase,\r\n variantProductAttributesMap,\r\n variantStoreAttributesMap,\r\n getVariantName,\r\n variantPropertyGroups,\r\n variantPropertyTypes,\r\n variantProperties,\r\n variantPropertyPaths,\r\n variantLayerProperties,\r\n variantVariableProperties,\r\n variantLayerPropertyDefaults,\r\n variantVariablePropertyDefaults,\r\n requireDependentProperties,\r\n scaledProperties,\r\n propertyName,\r\n audioTtsProps,\r\n hotDataChangeSources,\r\n feedSheetTypes\r\n};\r\n","const hourToMillisecondFactor = 3600000;\r\nconst minuteToMillisecondFactor = 60000;\r\nconst secondToMillisecondFactor = 1000;\r\n\r\n/**\r\n * Truncates a string to a specified length\r\n * @param {string} str the string to truncate\r\n * @param {number} length the length of the string to truncate\r\n * @param {string} ending the ending of the truncated string\r\n * @returns the truncated string\r\n */\r\nfunction textTruncate(str, length, ending) {\r\n if (length == null) {\r\n length = 100;\r\n }\r\n if (ending == null) {\r\n ending = '...';\r\n }\r\n if (str.length > length) {\r\n return str.substring(0, length - ending.length) + ending;\r\n } else {\r\n return str;\r\n }\r\n}\r\n\r\nconst isValidUrl = (url) => {\r\n const regex = /^(ftp|http|https):\\/\\/[^ \"]+$/;\r\n return regex.test(url);\r\n}\r\n\r\n/**\r\n * Formats the time from 'hh:mm:ss.xxx' to total milliseconds\r\n * @param {string} time input time to convert\r\n * @returns formatted time\r\n */\r\nconst formatTimeToMilliseconds = (time) => {\r\n if (!time) {\r\n return;\r\n }\r\n const duration = time.split(':');\r\n const durationInMilliseconds = Number(duration[0]) * hourToMillisecondFactor + Number(duration[1]) * minuteToMillisecondFactor + Number(duration[2]) * secondToMillisecondFactor;\r\n return durationInMilliseconds;\r\n};\r\n\r\n/**\r\n * Formats the time from milliseconds to 'hh:mm:ss.xxx'\r\n * @param {string} time input time to convert\r\n * @returns formatted time\r\n */\r\nconst formatTimeToStandardFormat = (time) => {\r\n const hours = Math.floor(time / hourToMillisecondFactor).toLocaleString('en-US', {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false\r\n });\r\n time = time % hourToMillisecondFactor;\r\n const minutes = Math.floor(time / minuteToMillisecondFactor).toLocaleString('en-US', {\r\n minimumIntegerDigits: 2,\r\n useGrouping: false\r\n });\r\n time = time % minuteToMillisecondFactor;\r\n const seconds = (time / secondToMillisecondFactor).toLocaleString('en-US', {\r\n minimumIntegerDigits: 2,\r\n maximumFractionDigits: 3,\r\n useGrouping: false\r\n });\r\n return `${hours}:${minutes}:${seconds}`;\r\n};\r\n\r\nconst delay = (time) => {\r\n return new Promise(function (resolve) {\r\n setTimeout(resolve, time);\r\n });\r\n}\r\n\r\nmodule.exports = {\r\n textTruncate,\r\n isValidUrl,\r\n formatTimeToMilliseconds,\r\n formatTimeToStandardFormat,\r\n delay\r\n};","const { forOwn, has, isPlainObject, transform, isEqual, pick, omit, set, get } = require('lodash');\r\nconst { layers: layerTypes, mediaTypes } = require('../constants/layers');\r\n\r\n/*\r\n getDeepDiff(base,other,exclude)\r\n base (Object)- Base object\r\n other (Object)- Compare to object\r\n exclude (Array)- Properties that needs to be excluded from diff, values of these properties will be untouched.\r\n propertiesToRemove (Array)- Properties that needs to be removed from the result.\r\n Example\r\n INPUT:\r\n var obj1 = {\r\n isDirty:true,\r\n data:{text:'Hello',color:'blue'},\r\n deepObj:{obj:{name:\"abc\"}},\r\n obj1Function:function(){return 'I am function 1'}\r\n }\r\n\r\n var obj2 = {\r\n isDirty:true,\r\n data:{text:'Hi',color:'blue'},\r\n deepObj:{obj:{name:\"abc\"}},\r\n obj1Function:function(){return 'I am function 1'}\r\n }\r\n getDeepDiff(obj1,obj2)\r\n\r\n OUTPUT:\r\n {\r\n data:{text:'Hi'},\r\n obj1Function:function(){return 'I am function 1'}\r\n }\r\n\r\n*/\r\nconst getDeepDiff = (base, object, excludeFromComp, propertiesToRemove) => {\r\n if (!object) throw new Error(`The object to be compared with should be an object: ${object}`);\r\n if (!base) return object;\r\n const result = transform(object, (result, value, key) => {\r\n if((propertiesToRemove && propertiesToRemove.length >= 0 && propertiesToRemove.includes(key))){\r\n return;\r\n }\r\n if (!has(base, key)) result[key] = value;\r\n\r\n //Add the excluded object directly\r\n if(excludeFromComp && excludeFromComp.length >= 0 && excludeFromComp.includes(key) || typeof(value) == 'function'){\r\n result[key] = value;\r\n } else if (!isEqual(value, base[key])) {\r\n //check if it is object else add directly\r\n result[key] = isPlainObject(value) && isPlainObject(base[key]) ? getDeepDiff(base[key], value, excludeFromComp, propertiesToRemove) : value;\r\n }\r\n });\r\n\r\n //remove undefined objects\r\n forOwn(base, (value, key) => {\r\n if (!has(object, key)) delete result[key];\r\n });\r\n return result;\r\n}\r\n\r\n/*\r\n Gets list of all the keys in the object\r\n*/\r\n\r\nconst getKeys = (a) => {\r\n let res = [];\r\n for (let key of Object.keys(a)) {\r\n res.push(key);\r\n if (typeof a[key] == 'object' && a[key] != null) {\r\n res.push(...getKeys(a[key]))\r\n }\r\n }\r\n return res;\r\n}\r\n\r\n/*\r\n Fetches the properties in 1 object based on the structure of second object. Stores the final result in a referenced param\r\n*/\r\nconst recursiveExtract = (source, target, result) => {\r\n for (const key in target) {\r\n if (typeof target[key] === 'object' && !Array.isArray(target[key])) {\r\n // Recursively handle nested structures\r\n if (source[key] && typeof source[key] === 'object') {\r\n result[key] = {};\r\n recursiveExtract(source[key], target[key], result[key]);\r\n }\r\n } else {\r\n // Leaf property, fetch its value from the source object\r\n if (Array.isArray(source[key])) {\r\n result[key] = JSON.parse(JSON.stringify(source[key]));\r\n } else {\r\n result[key] = source[key];\r\n }\r\n }\r\n }\r\n};\r\n\r\n/*\r\n Object.assign's alternative for deep assign\r\n\r\n deepAssign(base,object)\r\n base - assign To Object\r\n object - assign From Object\r\n\r\n Example\r\n INPUT:\r\n var obj1 = {\r\n isDirty:true,\r\n data:{text:'Hello',color:'blue'},\r\n deepObj:{obj:{name:\"abc\"}},\r\n obj1Function:function(){return 'I am function 1'}\r\n }\r\n\r\n var obj2 = {\r\n isDirty:true,\r\n data:{text:'Hi',color:'red'},\r\n deepObj:{obj:{name:\"abc\"}},\r\n obj1Function:function(){return 'I am function 2'},\r\n isDirty:true\r\n }\r\n deepAssign(obj2,obj1)\r\n\r\n OUTPUT:\r\n {\r\n isDirty:true,\r\n data:{text:'Hello',color:'blue'},\r\n deepObj:{obj:{name:\"abc\"}},\r\n obj1Function:function(){return 'I am function 1'}\r\n }\r\n\r\n*/\r\n\r\nconst isObject = (item)=> {\r\n return (item && typeof item === 'object' && !Array.isArray(item));\r\n}\r\nconst deepAssign = (target, ...sources)=> {\r\n if (!sources.length) return target;\r\n const source = sources.shift();\r\n if (isObject(target) && isObject(source)) {\r\n for (const key in source) {\r\n if (isObject(source[key])) {\r\n if (!target[key]) {\r\n Object.assign(target, { [key]: {} });\r\n }else{\r\n target[key] = Object.assign({}, target[key])\r\n }\r\n deepAssign(target[key], source[key]);\r\n } else {\r\n Object.assign(target, { [key]: source[key] });\r\n }\r\n }\r\n }\r\n\r\n return deepAssign(target, ...sources);\r\n}\r\n\r\n// Speaker image and subtitle need to be at top. Hence, other layers will be added at index below them.\r\nconst addLayerToLayersObject = (type, layers, data) => {\r\n var insertAtIndex = layers.filter(x => [layerTypes.subtitle].includes(x.type)).length;\r\n layers.splice(insertAtIndex, 0, data);\r\n return insertAtIndex;\r\n};\r\n\r\nconst getLoaderTextObjectData = (isHidden, type) => {\r\n const textLoaderData = {\r\n visible: !isHidden,\r\n evented: false,\r\n selectable: false,\r\n objectCaching: false,\r\n textBackgroundColor: '#FFFFFF',\r\n fill: '#000000',\r\n fontFamily: 'Roboto',\r\n fontSize: 24,\r\n textAlign: 'center',\r\n width: 300\r\n }\r\n if (type) {\r\n textLoaderData[`is${type}Loader`] = true;\r\n } else {\r\n textLoaderData.isLoader = true;\r\n }\r\n return textLoaderData;\r\n}\r\n\r\nconst getComputedLayer = (layers, ad, layerId) => {\r\n const layer = layers.find(l => l.id === layerId);\r\n let computedLayer = JSON.parse(JSON.stringify(layer));\r\n if (ad.localLayers && ad.localLayers.length > 0) {\r\n const localLayer = ad.localLayers.find(l => l.id === layerId);\r\n deepAssign(computedLayer, localLayer);\r\n }\r\n return computedLayer;\r\n};\r\n\r\nfunction replaceWithCDN(srcUrl) {\r\n const s3Url = `${process.env.VUE_APP_STORAGE_URL}/AllFiles/Uploads/`;\r\n const cdnUrl = process.env.VUE_APP_CB_GALLERY_URL;\r\n\r\n if (srcUrl && srcUrl.startsWith(s3Url) && cdnUrl) {\r\n const replacedUrl = srcUrl.replace(s3Url, cdnUrl);\r\n return replacedUrl;\r\n }\r\n\r\n return srcUrl;\r\n};\r\n\r\nconst replaceMediaUrlWithCdn = (media, mediaType) => {\r\n if (mediaType === mediaTypes.image) {\r\n media.images && media.images.forEach(image => {\r\n image.imageUrl = replaceWithCDN(image.imageUrl);\r\n });\r\n } else if (mediaType === mediaTypes.video) {\r\n media.videos && media.videos.forEach(video => {\r\n video.url = replaceWithCDN(video.url);\r\n });\r\n } else {\r\n media.audios && media.audios.forEach(audio => {\r\n audio.url = replaceWithCDN(audio.url);\r\n });\r\n }\r\n};\r\n\r\nconst getInsertAtIndex = function(layers, canvasLayers, insertAtLayerId, insertingLayerId) {\r\n let adLayerIndex = 0;\r\n for(let i = layers.length - 1; i >= 0; i--) {\r\n let insertingLayerIndex = layers.findIndex(layer => layer.id === insertingLayerId);\r\n let insertAtLayerIndex = layers.findIndex(layer => layer.id === insertAtLayerId);\r\n // if dropping the layer down from the current position\r\n if(insertAtLayerIndex > insertingLayerIndex) {\r\n if(layers[i].id === insertAtLayerId) break;\r\n }\r\n let fabricObject = canvasLayers.findIndex(obj => obj.layerId === layers[i].id);\r\n // As we will be reordering the canvas layers we will only count those\r\n if(fabricObject !== -1) {\r\n if(layers[i].type !== layerTypes.background && layers[i].type !== layerTypes.border && !(layers[i].id === insertingLayerId)) {\r\n adLayerIndex++;\r\n }\r\n }\r\n if(layers[i].id === insertAtLayerId) break;\r\n }\r\n return adLayerIndex;\r\n}\r\n\r\n// This function returns the filtered data with supported properties and unsupported properties\r\nconst filterProperties = (layer, supportedFocusModeProperties, commonProperties) => {\r\n if(!layer || !supportedFocusModeProperties) return;\r\n // Filter the data with supported properties and unsupported properties\r\n const filteredDataWithSupportedProperties = pick(layer, supportedFocusModeProperties);\r\n const filteredDataWithoutSupportedProperties = omit(layer, supportedFocusModeProperties);\r\n // Add the common properties to the filtered data with supported properties\r\n if(commonProperties) {\r\n for(let key of commonProperties) {\r\n const originalValue = get(layer, key);\r\n if(originalValue) {\r\n set(filteredDataWithSupportedProperties, key, originalValue);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n filteredDataWithSupportedProperties,\r\n filteredDataWithoutSupportedProperties\r\n };\r\n}\r\n\r\nconst roundOffPropertiesInObject = (object, precision) => {\r\n const multiplicationFactor = 10 ** precision;\r\n forOwn(object, (value, key) => {\r\n if (!isNaN(value)) {\r\n object[key] = Math.round((value + Number.EPSILON) * multiplicationFactor) / multiplicationFactor;\r\n }\r\n });\r\n};\r\n\r\nconst getAllPathsInObject = (object, currentPath = '') => {\r\n let paths = [];\r\n\r\n for (let key in object) {\r\n let newPath = currentPath ? `${currentPath}.${key}` : key;\r\n if (typeof object[key] === 'object' && object[key] !== null && !Array.isArray(object[key])) {\r\n paths = paths.concat(getAllPathsInObject(object[key], newPath));\r\n } else {\r\n paths.push(newPath);\r\n }\r\n }\r\n\r\n return paths;\r\n};\r\n\r\nconst flattenObject = (obj, prefix = '') => {\r\n let result = {};\r\n\r\n for (const [key, value] of Object.entries(obj)) {\r\n const newKey = prefix ? `${prefix}.${key}` : key;\r\n if (isPlainObject(value)) {\r\n Object.assign(result, flattenObject(value, newKey));\r\n } else {\r\n result[newKey] = value;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nconst sanitizeNumber = (str, currentValue) => {\r\n if(currentValue) {\r\n return str !== currentValue ? str.replace(/[^\\d.-]/g, '') : '0';\r\n }\r\n return str.replace(/[^\\d.-]/g, '');\r\n}\r\n\r\nmodule.exports = {\r\n getDeepDiff,\r\n getKeys,\r\n recursiveExtract,\r\n deepAssign,\r\n addLayerToLayersObject,\r\n getLoaderTextObjectData,\r\n getComputedLayer,\r\n replaceMediaUrlWithCdn,\r\n getInsertAtIndex,\r\n filterProperties,\r\n roundOffPropertiesInObject,\r\n getAllPathsInObject,\r\n flattenObject,\r\n sanitizeNumber,\r\n replaceWithCDN\r\n};\r\n","const { deepAssign } = require('./commonHelper');\r\nconst { mediaElementReadyState } = require('../constants/audio');\r\nconst { FabricImage } = require('fabric');\r\nconst { setLayoutPosition } = require('./gridLayoutHelper');\r\n\r\nconst getImageDimensions = (data) => {\r\n let width, height;\r\n if (!data.multipleSources || data.props.sources.length == 0) {\r\n width = data.props.width;\r\n height = data.props.height;\r\n }\r\n else {\r\n width = data.props.sources[0].width;\r\n height = data.props.sources[0].height;\r\n }\r\n return { width, height };\r\n}\r\n\r\nconst updateAudioLayer = (layerToUpdate, data) => {\r\n deepAssign(layerToUpdate.data, data);\r\n //Clone array because layerToUpdate.data.adLayoutPositions and data.adLayoutPositions have the same reference\r\n if(data.adLayoutPositions){\r\n let clone = data.adLayoutPositions.slice(0);\r\n // avoiding changing array reference and simply emptying it and pushing the new items\r\n // This is done so that reactivity is not lost\r\n layerToUpdate.data.adLayoutPositions.length = 0;\r\n layerToUpdate.data.adLayoutPositions.push(...clone);\r\n }\r\n}\r\n\r\nconst loadMediaElement = async function(mediaElement) {\r\n let mediaLoadPromise = new Promise((resolve, reject) => {\r\n mediaElement.load();\r\n let mediaElementReadyStateTimeout = null;\r\n // Below function adapted from http://atomicrobotdesign.com/blog/web-development/check-when-an-html5-video-has-loaded/\r\n function checkLoad() {\r\n if (mediaElement.readyState === mediaElementReadyState.HAVE_ENOUGH_DATA) {\r\n clearTimeout(mediaElementReadyStateTimeout)\r\n resolve();\r\n }\r\n else {\r\n mediaElementReadyStateTimeout = setTimeout(checkLoad, 100);\r\n }\r\n }\r\n checkLoad();\r\n });\r\n return mediaLoadPromise;\r\n}\r\n\r\nconst createVideoFabricObject = (ad, videoElement, layer) => {\r\n let fabricObject = new FabricImage(videoElement, {\r\n visible: !layer.data.hidden,\r\n objectCaching: false,\r\n ...layer.data.styles\r\n },\r\n {\r\n crossOrigin: 'Anonymous'\r\n });\r\n setLayoutPosition(ad, fabricObject, layer.data);\r\n fabricObject.layerId = layer.id;\r\n return fabricObject;\r\n}\r\n\r\nmodule.exports = {\r\n getImageDimensions,\r\n updateAudioLayer,\r\n loadMediaElement,\r\n createVideoFabricObject\r\n};","/**\r\n * Initializes ffmpeg in-browser - https://github.com/ffmpegwasm/ffmpeg.wasm#usage\r\n * This method is called once when download video is invoked\r\n * @returns ffmpeg instance\r\n */\r\n// AY TODO: Would be ideal to move this out to \"Encoder\" functionality\r\n\r\nvar ffmpegLogs = [];\r\nvar setLogging = false;\r\n\r\nasync function initFFmpeg() {\r\n // FFmpeg instance is globally added using script tag in the index.html page\r\n // https://github.com/ffmpegwasm/ffmpeg.wasm#installation > \"Browser\"\r\n\r\n const { createFFmpeg } = FFmpeg;\r\n var ffmpeg = createFFmpeg({ log: false });\r\n // eslint-disable-next-line\r\n console.log('Loading ffmpeg-core.js');\r\n if (!ffmpeg.isLoaded()) {\r\n await ffmpeg.load();\r\n }\r\n ffmpeg.setLogger(({ type, message }) => {\r\n if (!setLogging) {\r\n return;\r\n }\r\n ffmpegLogs.push(message);\r\n });\r\n return ffmpeg;\r\n}\r\n\r\nfunction setFfmpegLogging(value) {\r\n setLogging = value;\r\n}\r\n\r\nfunction getFfmpegLogs() {\r\n return ffmpegLogs;\r\n}\r\n\r\nfunction clearFfmpegLogs() {\r\n ffmpegLogs = [];\r\n}\r\n\r\nmodule.exports = {\r\n initFFmpeg,\r\n setFfmpegLogging,\r\n getFfmpegLogs,\r\n clearFfmpegLogs\r\n};","const { gridLayoutPositions, topProximityFactor, leftProximityFactor, bottomProximityFactor, rightProximityFactor, gridLayoutTypes } = require('../constants/gridLayout');\r\nconst { originX: originXOptions, originY: originYOptions } = require('../constants/commonData');\r\nconst { layers: layerTypes } = require('../constants/layers');\r\n\r\nconst getLayoutPosition = (\r\n layoutDimension,\r\n contentDimension,\r\n layoutPosition,\r\n positionOffset,\r\n ignoreOrigin,\r\n ignoreProximityFactor\r\n) => {\r\n let hOffset = positionOffset.hOffset * 0.01;\r\n let vOffset = positionOffset.vOffset * 0.01;\r\n let centerOffsetX = 0, centerOffsetY = 0, widthOffset = 0;\r\n\r\n let topProximity = topProximityFactor;\r\n let leftProximity = leftProximityFactor;\r\n let rightProximity = rightProximityFactor;\r\n let bottomProximity = bottomProximityFactor;\r\n\r\n if (ignoreProximityFactor) {\r\n topProximity = leftProximity = 0;\r\n rightProximity = bottomProximity = 1;\r\n }\r\n\r\n if (ignoreOrigin) {\r\n centerOffsetX = contentDimension.width / 2;\r\n centerOffsetY = contentDimension.height / 2;\r\n widthOffset = contentDimension.width;\r\n }\r\n\r\n switch (layoutPosition) {\r\n case gridLayoutPositions.topLeft:\r\n return {\r\n left: parseInt(Math.ceil((leftProximity + hOffset) * layoutDimension.width) + centerOffsetX),\r\n top: parseInt(Math.ceil((topProximity + vOffset) * layoutDimension.height) + centerOffsetY)\r\n };\r\n case gridLayoutPositions.topCentre: {\r\n let center = (layoutDimension.width / 2) - centerOffsetX;\r\n return {\r\n left: parseInt(Math.ceil(center + (center * 2 * hOffset)) + centerOffsetX),\r\n top: parseInt(Math.ceil((topProximity + vOffset) * layoutDimension.height) + centerOffsetY)\r\n }\r\n }\r\n case gridLayoutPositions.topRight:\r\n return {\r\n left: parseInt(Math.floor((layoutDimension.width * (rightProximity + hOffset)) - widthOffset) + centerOffsetX),\r\n top: parseInt(Math.floor((topProximity + vOffset) * layoutDimension.height) + centerOffsetY)\r\n }\r\n case gridLayoutPositions.middleLeft: {\r\n let center = layoutDimension.height / 2;\r\n return {\r\n left: parseInt(Math.ceil((leftProximity + hOffset) * layoutDimension.width) + centerOffsetX),\r\n top: parseInt(Math.ceil(center + (center * 2 * vOffset)))\r\n }\r\n }\r\n case gridLayoutPositions.middleCentre: {\r\n let hCenter = (layoutDimension.width / 2) - centerOffsetX;\r\n let vCenter = (layoutDimension.height / 2) - centerOffsetY;\r\n return {\r\n left: parseInt(Math.ceil(hCenter + (hCenter * 2 * hOffset)) + centerOffsetX),\r\n top: parseInt(Math.ceil(vCenter + (vCenter * 2 * vOffset)) + centerOffsetY)\r\n }\r\n }\r\n case gridLayoutPositions.middleRight: {\r\n let center = (layoutDimension.height / 2) - centerOffsetY;\r\n return {\r\n left: parseInt(Math.ceil((layoutDimension.width * (rightProximity + hOffset)) - widthOffset) + centerOffsetX),\r\n top: parseInt(Math.ceil(center + (center * 2 * vOffset)) + centerOffsetY)\r\n }\r\n }\r\n case gridLayoutPositions.bottomLeft:\r\n return {\r\n left: parseInt(Math.ceil((leftProximity + hOffset) * layoutDimension.width) + centerOffsetX),\r\n top: parseInt(Math.floor((layoutDimension.height * (bottomProximity + vOffset)) - centerOffsetY))\r\n }\r\n case gridLayoutPositions.bottomCentre: {\r\n let center = (layoutDimension.width / 2) - centerOffsetX;\r\n return {\r\n left: parseInt(Math.ceil(center + (center * 2 * hOffset)) + centerOffsetX),\r\n top: parseInt(Math.ceil((layoutDimension.height * (bottomProximity + vOffset)) - centerOffsetY))\r\n }\r\n }\r\n case gridLayoutPositions.bottomRight:\r\n return {\r\n left: parseInt(Math.floor((layoutDimension.width * (rightProximity + hOffset)) - centerOffsetX)),\r\n top: parseInt(Math.floor((layoutDimension.height * (bottomProximity + vOffset)) - centerOffsetY))\r\n }\r\n }\r\n};\r\n\r\nconst getLayoutType = function (width, height) {\r\n var aspectRatio = width / height;\r\n if (aspectRatio == 1) {\r\n return gridLayoutTypes.Square;\r\n }\r\n if(aspectRatio > 0.5 && aspectRatio < 2)\r\n {\r\n return gridLayoutTypes.Rectangle;\r\n }\r\n if (aspectRatio >= 2) {\r\n return gridLayoutTypes.Horizontal;\r\n }\r\n return gridLayoutTypes.Vertical;\r\n}\r\n\r\nconst getAdLayoutPosition = function (layoutType, width, height, fabricObject, contentWidth, contentHeight, hasOriginChanged) {\r\n let posX = fabricObject.left,\r\n posY = fabricObject.top,\r\n originX = fabricObject.originX,\r\n originY = fabricObject.originY,\r\n centerOffsetX = contentWidth / 2,\r\n centerOffsetY = contentHeight / 2;\r\n let top = posY - centerOffsetY,\r\n left = posX - centerOffsetX;\r\n if (hasOriginChanged) {\r\n centerOffsetY = centerOffsetX = 0;\r\n if (originX === originXOptions.right) {\r\n left = posX - contentWidth;\r\n } else if (originX === originXOptions.left){\r\n left = posX;\r\n }\r\n\r\n if (originY === originYOptions.bottom) {\r\n top = posY - contentHeight;\r\n } else if (originY === originYOptions.top) {\r\n top = posY;\r\n }\r\n }\r\n const bottom = top + contentHeight;\r\n const right = left + contentWidth;\r\n const centerY = top + (contentHeight / 2);\r\n const centerX = left + (contentWidth / 2);\r\n\r\n let topLeft = { sx: 0, sy: 0, dx: left, dy: top };\r\n let topCenter = { sx: Math.round(width / 2), sy: 0, dx: centerX, dy: top };\r\n let topRight = { sx: width, sy: 0, dx: right, dy: top };\r\n let middleLeft = { sx: 0, sy: Math.round(height / 2), dx: left, dy: centerY };\r\n let middleCenter = { sx: Math.round(width / 2), sy: Math.round(height / 2), dx: centerX, dy: centerY };\r\n let middleRight = { sx: width, sy: Math.round(height / 2), dx: right, dy: centerY };\r\n let bottomLeft = { sx: 0, sy: height, dx: left, dy: bottom };\r\n let bottomCenter = { sx: Math.round(width / 2), sy: height, dx: centerX, dy: bottom };\r\n let bottomRight = { sx: width, sy: height, dx: right, dy: bottom };\r\n let points = [topLeft, topCenter, topRight, middleLeft, middleCenter, middleRight, bottomLeft, bottomCenter, bottomRight];\r\n let distances = points.map(point => Math.sqrt(Math.pow(point.sx - point.dx, 2) + Math.pow(point.sy - point.dy, 2)));\r\n let minIndex = distances.indexOf(Math.min.apply(Math, distances));\r\n let positionIndex;\r\n let hOffset;\r\n let vOffset;\r\n let center;\r\n switch(minIndex) {\r\n case 0:\r\n positionIndex = gridLayoutPositions.topLeft;\r\n hOffset = (((posX - centerOffsetX) / width) - leftProximityFactor) * 100;\r\n vOffset = (((posY - centerOffsetY) / height) - topProximityFactor) * 100;\r\n break;\r\n case 1:\r\n positionIndex = gridLayoutPositions.topCentre;\r\n center = (width / 2) - centerOffsetX;\r\n hOffset = ((posX - center - centerOffsetX) / (center * 2)) * 100;\r\n vOffset = ((posY - centerOffsetY) / height - topProximityFactor) * 100;\r\n break;\r\n case 2:\r\n positionIndex = gridLayoutPositions.topRight;\r\n hOffset = (((posX + centerOffsetX) / width) - rightProximityFactor) * 100;\r\n vOffset = ((posY - centerOffsetY) / height - topProximityFactor) * 100;\r\n break;\r\n case 3:\r\n positionIndex = gridLayoutPositions.middleLeft;\r\n center = height / 2;\r\n hOffset = ((posX - centerOffsetX) / width - leftProximityFactor) * 100;\r\n vOffset = ((posY - center) / (center * 2)) * 100;\r\n break;\r\n case 4:\r\n positionIndex = gridLayoutPositions.middleCentre;\r\n let hCenter = (width / 2) - centerOffsetX;\r\n let vCenter = (height / 2) - centerOffsetY;\r\n hOffset = ((posX - hCenter - centerOffsetX) / (hCenter * 2)) * 100;\r\n vOffset = ((posY - vCenter - centerOffsetY) / (vCenter * 2)) * 100 ;\r\n break;\r\n case 5:\r\n positionIndex = gridLayoutPositions.middleRight;\r\n center = (height / 2) - centerOffsetY;\r\n hOffset = ((posX + centerOffsetX) / width - rightProximityFactor) * 100;\r\n vOffset = ((posY - center - centerOffsetY) / (center * 2)) * 100;\r\n break;\r\n case 6:\r\n positionIndex = gridLayoutPositions.bottomLeft;\r\n hOffset = ((posX - centerOffsetX) / width - leftProximityFactor) * 100;\r\n vOffset = ((posY + centerOffsetY) / height - bottomProximityFactor) * 100;\r\n break;\r\n case 7:\r\n positionIndex = gridLayoutPositions.bottomCentre;\r\n center = (width / 2) - centerOffsetX;\r\n hOffset = ((posX - center - centerOffsetX) / (center * 2)) * 100;\r\n vOffset = ((posY + centerOffsetY) / height - bottomProximityFactor) * 100;\r\n break;\r\n case 8:\r\n positionIndex = gridLayoutPositions.bottomRight;\r\n hOffset = ((posX + centerOffsetX) / width - rightProximityFactor) * 100;\r\n vOffset = ((posY + centerOffsetY) / height - bottomProximityFactor) * 100;\r\n break;\r\n }\r\n return {\r\n layoutType,\r\n positionIndex,\r\n positionOffset: {\r\n hOffset,\r\n vOffset\r\n }\r\n };\r\n}\r\n\r\nconst setLayoutPosition = (ad, fabricObject, data, layerInCanvas = null, positionDifference = null) => {\r\n if(positionDifference){\r\n fabricObject.left += positionDifference.left;\r\n fabricObject.top += positionDifference.top;\r\n } else {\r\n var adLayoutPosition = data.adLayoutPositions.find(layoutPosition => layoutPosition.layoutType == ad.layoutType);\r\n if (adLayoutPosition) {\r\n var layoutPosition = getLayoutPosition(\r\n { width: ad.width, height: ad.height },\r\n { width: fabricObject.getScaledWidth(), height: fabricObject.getScaledHeight() },\r\n adLayoutPosition.positionIndex,\r\n adLayoutPosition.positionOffset,\r\n (data.styles && data.styles.hasOriginChanged != null) ? !data.styles.hasOriginChanged : true\r\n );\r\n fabricObject.set({ left: layoutPosition.left });\r\n fabricObject.set({ top: layoutPosition.top });\r\n }\r\n }\r\n if(layerInCanvas && layerInCanvas.absoluteProps && !layerInCanvas.absoluteProps.applyAbsolutePosition) {\r\n layerInCanvas.absoluteProps.positionLeft = fabricObject.left;\r\n layerInCanvas.absoluteProps.positionTop = fabricObject.top;\r\n }\r\n}\r\n\r\nconst updateGridLayoutPosition = function(layerData, ad, fabricObject, layerType) {\r\n let layoutPosition = layerData.adLayoutPositions.find(layoutPosition => layoutPosition.layoutType == ad.layoutType);\r\n const hasOriginChanged = layerType === layerTypes.button ? layerData.hasOriginChanged : layerData.styles.hasOriginChanged\r\n Object.assign(layoutPosition,\r\n getAdLayoutPosition(\r\n ad.layoutType,\r\n ad.width,\r\n ad.height,\r\n fabricObject,\r\n fabricObject.getScaledWidth(),\r\n fabricObject.getScaledHeight(),\r\n hasOriginChanged\r\n ));\r\n}\r\n\r\nmodule.exports = {\r\n getLayoutPosition,\r\n getLayoutType,\r\n getAdLayoutPosition,\r\n setLayoutPosition,\r\n updateGridLayoutPosition\r\n};","const { getLayoutPosition } = require('../helpers/gridLayoutHelper');\r\nconst { calculateScaleForFitOption, updateImageCropAndPosition } = require('../helpers/objectSizingHelper');\r\nconst { positions } = require('../constants/animation');\r\n\r\n//This is to change source on canvas during animations or when the image is clicked from layer panel\r\nconst updateSourceOnCanvas = async (payload) => {\r\n var { ad, layerToUpdate, data, source } = payload;\r\n let fabricObject = layerToUpdate.fabricObject;\r\n if (!fabricObject) {\r\n return;\r\n }\r\n let imageSrc = source.imageUrl\r\n let { styles } = data;\r\n calculateScaleForFitOption(data, source.width, source.height);\r\n let adLayoutPosition = data.adLayoutPositions.find(layoutPosition => layoutPosition.layoutType == ad.layoutType);\r\n let layoutPosition = getLayoutPosition(\r\n { width: ad.width, height: ad.height },\r\n { width: source.width * styles.scaleX, height: source.height * styles.scaleY },\r\n adLayoutPosition.positionIndex,\r\n adLayoutPosition.positionOffset,\r\n !styles.hasOriginChanged\r\n );\r\n await fabricObject.setSrc(imageSrc, { crossOrigin: 'anonymous' });\r\n fabricObject.set({\r\n ...styles,\r\n dirty: true,\r\n left: layoutPosition.left,\r\n top: layoutPosition.top,\r\n visible: !data.hidden\r\n });\r\n updateImageCropAndPosition(fabricObject, data, adLayoutPosition, styles, ad, source, payload.isInDefaultVariant);\r\n ad.canvas.renderAll();\r\n}\r\n\r\nconst updateMultipleImagesAnimationSource = (defaultAnimation, animationSources, index = null) => {\r\n if (index != null) {\r\n let animationSource = animationSources[index];\r\n let animationSourcetime = animationSource[positions.end].endTime - animationSource[positions.start].startTime;\r\n animationSources.splice(index, 1);\r\n //Shift all other animation sources after deleted source to the front.\r\n for (let i = index; i < animationSources.length; i++){\r\n [positions.start, positions.middle, positions.end].forEach((pos) => {\r\n animationSources[i][pos].startTime -= animationSourcetime;\r\n animationSources[i][pos].endTime -= animationSourcetime;\r\n })\r\n }\r\n }\r\n else {\r\n let lastAnimationSource = animationSources[animationSources.length - 1];\r\n let animationSource = {};\r\n let positionsArray = [positions.start, positions.middle, positions.end];\r\n let startTime = lastAnimationSource ? lastAnimationSource[positions.end].endTime : 0;\r\n let endTime = startTime + (defaultAnimation.start.endTime - defaultAnimation.start.startTime);\r\n positionsArray.forEach((position, index) => {\r\n if (index) {\r\n startTime = endTime + defaultAnimation[position].startTime - defaultAnimation[positionsArray[index - 1]].endTime;\r\n endTime = startTime + defaultAnimation[position].endTime - defaultAnimation[position].startTime;\r\n }\r\n\r\n if (lastAnimationSource) {\r\n animationSource[position] = lastAnimationSource[position];\r\n } else if (defaultAnimation) {\r\n animationSource[position] = defaultAnimation[position];\r\n }\r\n\r\n animationSource[position] = {\r\n ...animationSource[position],\r\n startTime,\r\n endTime,\r\n type: defaultAnimation[position].type\r\n }\r\n });\r\n animationSource.isDirty = false;\r\n animationSources.push(animationSource);\r\n }\r\n};\r\n\r\nmodule.exports = {\r\n updateSourceOnCanvas,\r\n updateMultipleImagesAnimationSource\r\n};\r\n","const { gridLayoutPositions } = require('../constants/gridLayout');\r\nconst { getLayoutPosition } = require('../helpers/gridLayoutHelper');\r\nconst { Path } = require('fabric');\r\nconst { imageFits } = require('../constants/image');\r\nconst { layers } = require('../constants/layers');\r\nconst { getImageDimensions } = require('./commonMediaHelper.js');\r\n\r\nconst relativeProximityFactor = 0.95;\r\n\r\nconst hasScaleChanged = (layerOne, layerTwo) => {\r\n let changed = (layerOne.data.styles.scaleX !== layerTwo.data.styles.scaleX || layerOne.data.styles.scaleY !== layerTwo.data.styles.scaleY);\r\n if(!changed && layerOne.data.styles.defaultScaleX && layerTwo.data.styles.defaultScaleX){\r\n changed = (layerOne.data.styles.defaultScaleX !== layerTwo.data.styles.defaultScaleX || layerOne.data.styles.defaultScaleY !== layerTwo.data.styles.defaultScaleY);\r\n }\r\n return changed;\r\n}\r\n\r\nconst setScalingBounds = function(layer, localLayer, fitOptionsInfo, isInDefaultVariant = false) {\r\n if (!(layer && layer.data)) return;\r\n const { props, styles } = layer.data;\r\n\r\n const InDefaultVariant = isInDefaultVariant;\r\n\r\n let { width, height } = getImageDimensions(layer.data);\r\n\r\n // to handle olderTemplates which dont have fitoptions as a property\r\n if(fitOptionsInfo && fitOptionsInfo.inImageLayer && layer.data.oldTemplateWithNoFitOptionsProperty){\r\n layer.data.oldTemplateWithNoFitOptionsProperty = false;\r\n }\r\n\r\n // check if localLayer is passed, if yes then use boundWidth and boundHeight from localLayer else from global layer\r\n let boundWidth = (localLayer && localLayer.data && localLayer.data.props && localLayer.data.props.boundWidth) ? localLayer.data.props.boundWidth : width * styles.scaleX;\r\n let boundHeight = (localLayer && localLayer.data && localLayer.data.props && localLayer.data.props.boundHeight) ? localLayer.data.props.boundHeight : height * styles.scaleY;\r\n\r\n // when it is image\r\n if(props.imageUrl){\r\n if(!InDefaultVariant){\r\n // when image is manual scaling from layer panel\r\n if(fitOptionsInfo?.panelScaling){\r\n Object.assign(layer.data.props, {\r\n boundWidth: props.defaultWidth * styles.defaultScaleX,\r\n boundHeight: props.defaultHeight * styles.defaultScaleY\r\n });\r\n }\r\n else{\r\n // when user adds new image directly on variants other than default then we need to assign defaultWidth && defaultHeight\r\n if(!props.defaultWidth && !props.defaultHeight){\r\n Object.assign(layer.data.props, {\r\n boundWidth,\r\n boundHeight,\r\n defaultWidth: width,\r\n defaultHeight: height\r\n });\r\n }\r\n else{\r\n Object.assign(layer.data.props, {\r\n boundWidth,\r\n boundHeight\r\n });\r\n }\r\n }\r\n }\r\n else{\r\n // in default Variant\r\n Object.assign(layer.data.props, {\r\n boundWidth: width * (fitOptionsInfo && fitOptionsInfo.draging ? styles.scaleX : styles.defaultScaleX),\r\n boundHeight: height * (fitOptionsInfo && fitOptionsInfo.draging ? styles.scaleY : styles.defaultScaleY),\r\n defaultWidth: width,\r\n defaultHeight: height\r\n });\r\n }\r\n }\r\n else{\r\n Object.assign(layer.data.props, {\r\n boundWidth,\r\n boundHeight\r\n });\r\n }\r\n\r\n if (props.renderSrc && fitOptionsInfo && fitOptionsInfo.imageObjectWidth && fitOptionsInfo.imageObjectHeight) {\r\n boundWidth = fitOptionsInfo.imageObjectWidth * styles.scaleX;\r\n boundHeight = fitOptionsInfo.imageObjectHeight * styles.scaleY;\r\n Object.assign(layer.data.props, {\r\n boundWidth,\r\n boundHeight\r\n });\r\n }\r\n /*\r\n In case of local layer only the diff will be stored, we use computedLocalLayer within method/block scope\r\n to get other missing properties from the global layer,above block will update the computedLocalLayer and not the diff.\r\n Below code will take care of localLayer if passed with any.\r\n */\r\n\r\n if(localLayer){\r\n localLayer.data = localLayer.data || {};\r\n localLayer.data.props = localLayer.data.props || {};\r\n Object.assign(localLayer.data.props, {\r\n boundWidth,\r\n boundHeight\r\n });\r\n }\r\n}\r\n\r\nconst scaleToBoundSize = function (layerToUpdate, data, localLayer, isInDefaultVariant = false) {\r\n if(data.props && data.props.width && data.props.height && data.styles && data.styles.scaleX && data.styles.scaleY){\r\n // Rescale to bound width and height.\r\n // Only applies to images from templates when a different image is selected.\r\n if (!layerToUpdate.data || !layerToUpdate.data.props.hasOwnProperty('boundWidth') || !layerToUpdate.data.props.hasOwnProperty('boundHeight'))\r\n return;\r\n const { boundWidth, boundHeight } = layerToUpdate.data.props;\r\n let { width, height } = getImageDimensions(layerToUpdate.data);\r\n // Scale upto 4 decimal places, eg. 0.5523 (55.23% on UI)\r\n let scaleX = Math.round((boundWidth / width) * 10000) / 10000;\r\n let scaleY = Math.round((boundHeight / height) * 10000) / 10000;\r\n\r\n const InDefaultVariant = isInDefaultVariant;\r\n\r\n if(!InDefaultVariant && layerToUpdate.type === layers.image){\r\n calculateScaleForFitOption(data, width, height);\r\n }\r\n else{\r\n data.styles.scaleX = scaleX;\r\n data.styles.scaleY = scaleY;\r\n data.styles.defaultScaleX = scaleX;\r\n data.styles.defaultScaleY = scaleY;\r\n }\r\n // to handle olderTemplates which dont have fitoptions as a property\r\n if(InDefaultVariant && data.oldTemplateWithNoFitOptionsProperty){\r\n if(data.styles.selectedFit === imageFits.fillToBounds){\r\n data.styles.scaleX = data.styles.scaleY = data.styles.scaleX < data.styles.scaleY ? data.styles.scaleX : data.styles.scaleY\r\n }\r\n else if(data.styles.LocalChangesWithAspectRatio){\r\n if(scaleX < scaleY){\r\n data.props.boundWidth = scaleX * width;\r\n data.props.boundHeight = scaleX * height;\r\n data.styles.scaleX = data.styles.scaleY = scaleX\r\n }\r\n else{\r\n data.props.boundWidth = scaleY * width;\r\n data.props.boundHeight = scaleY * height;\r\n data.styles.scaleX = data.styles.scaleY = scaleY\r\n }\r\n data.styles.LocalChangesWithAspectRatio = false;\r\n }\r\n if(!data.styles.LocalChangesWithAspectRatio && localLayer && data.styles.selectedFit === imageFits.fillToBounds){\r\n data.styles.scaleX = boundWidth / width;\r\n data.styles.scaleY = boundHeight / height;\r\n }\r\n }\r\n /*\r\n In case of local layer only the diff will be stored, we use computedLocalLayer within method/block scope\r\n to get other properties missing properties from the global layer,above block will update the computedLocalLayer and not the diff.\r\n Below code will take care of localLayer if passed with any.\r\n */\r\n let styles = {\r\n scaleX: data.styles.scaleX,\r\n scaleY: data.styles.scaleY,\r\n defaultScaleX: data.styles.defaultScaleX,\r\n defaultScaleY: data.styles.defaultScaleY\r\n }\r\n if (localLayer) {\r\n localLayer.data = localLayer.data || {};\r\n localLayer.data.styles = localLayer.data.styles || {};\r\n Object.assign(localLayer.data.styles, styles);\r\n }\r\n }\r\n}\r\nconst getPositionDiference = (oldScales, objectDimensions, adLayoutPosition, ad, newScales, position, hasOriginChanged) => {\r\n let styles = {\r\n scaleX: parseFloat(newScales.scaleX.toFixed(4)),\r\n scaleY: parseFloat(newScales.scaleY.toFixed(4))\r\n }\r\n var originalLayoutPosition = getLayoutPosition(\r\n { width: ad.width, height: ad.height },\r\n { width: objectDimensions.width * styles.scaleX, height: objectDimensions.height * styles.scaleY },\r\n adLayoutPosition.positionIndex,\r\n adLayoutPosition.positionOffset,\r\n !hasOriginChanged\r\n );\r\n const hasImagePositionChanged = originalLayoutPosition.top != position.top || originalLayoutPosition.left != position.left;\r\n const hasScaleChanged = oldScales.scaleX != styles.scaleX || oldScales.scaleX != styles.scaleY;\r\n let differenceInPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n if(hasImagePositionChanged || hasScaleChanged) {\r\n differenceInPosition = {\r\n top: position.top - originalLayoutPosition.top,\r\n left: position.left - originalLayoutPosition.left\r\n }\r\n }\r\n return differenceInPosition;\r\n}\r\nconst getRelativeScalesForClip = (clipPath, { scaleX, scaleY }, fabricObject, canvas) => {\r\n const objectHeight = fabricObject.getScaledHeight(), objectWidth = fabricObject.getScaledWidth(),\r\n objectTop = fabricObject.getBoundingRect().top, objectLeft = fabricObject.getBoundingRect().left;\r\n // set the new scale to 80% of the object\r\n let relativeScaleX = (objectWidth * 0.8) / (clipPath.width * scaleX),\r\n relativeScaleY = (objectHeight * 0.8) / (clipPath.height * scaleY);\r\n const isImageOutsideCanvas = objectTop + objectHeight > canvas.height ||\r\n objectTop < 0 ||\r\n objectLeft + objectWidth > canvas.width ||\r\n objectLeft < 0;\r\n if(isImageOutsideCanvas) {\r\n // If the object is outside the canvas, then the relative size of the clip must be reduced\r\n const objectWidthInsideCanvas = objectWidth - Math.abs(objectLeft);\r\n const objectHeightInsideCanvas = objectHeight - Math.abs(objectTop);\r\n relativeScaleY = relativeScaleY - ((objectHeight - objectHeightInsideCanvas) / objectHeight);\r\n relativeScaleX = relativeScaleX - ((objectWidth - objectWidthInsideCanvas) / objectWidth);\r\n }\r\n return {\r\n scaleX: relativeScaleX,\r\n scaleY: relativeScaleY\r\n };\r\n}\r\nconst getPositionForClip = (clipPath, fabricObject, canvas, hasOriginChanged) => {\r\n const objectHeight = fabricObject.getScaledHeight(), objectWidth = fabricObject.getScaledWidth(),\r\n objectTop = fabricObject.getBoundingRect().top, objectLeft = fabricObject.getBoundingRect().left;\r\n // set the new clip position to middle center\r\n let relativePosition = gridLayoutPositions.middleCentre;\r\n const position = getLayoutPosition(\r\n { width: objectWidth, height: objectHeight },\r\n { width: clipPath.getScaledWidth(), height: clipPath.getScaledHeight() },\r\n relativePosition,\r\n { hOffset: objectLeft, vOffset: objectTop },\r\n !hasOriginChanged\r\n );\r\n if(objectLeft < 0 || objectTop < 0) {\r\n // If the object is starting outside the top-left of the canvas,\r\n // then try to position the clip to bottom-right of object\r\n position.top = objectTop + objectHeight - (clipPath.getScaledHeight() / 2);\r\n position.left = objectLeft + objectWidth - (clipPath.getScaledWidth() / 2);\r\n }\r\n else if(objectTop + objectHeight > canvas.height || objectLeft + objectWidth > canvas.width) {\r\n // If the object ending outside the bottom-right of the canvas,\r\n // then try to position the clip to top-left of object\r\n position.top = fabricObject.top;\r\n position.left = fabricObject.left;\r\n }\r\n return position;\r\n}\r\nconst createClip = (filters, styles, canvas, adLayer, isTemplateLoad) => {\r\n /**\r\n * The way clip works in fabric is that once you add a clipPath to an object, the clip object is no longer accessible\r\n * for interactive edit. Setting it as the active object will only result in the selecting the object as a whole.\r\n * To overcome this, we create a separate object on the canvas for the clip and then assign it to object's clipPath.\r\n * This way, we can maintain the interactivity of the clip object.\r\n */\r\n const { clipping } = filters;\r\n const relativeProps = adLayer.relativeProps;\r\n if(!relativeProps.clipping) {\r\n relativeProps.clipping = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n top: 0,\r\n left: 0,\r\n /**\r\n * This flag determines if relative properties are computed or not for the particular ad.\r\n * If this is an old template, then we set this to true to avoid computation.\r\n */\r\n defaultsComputed: isTemplateLoad ? true : false,\r\n /**\r\n * This flag determines if position needs to be recomputed. This is needed when focus mode is reset\r\n * and the position needs to be computed based on the global layer.\r\n */\r\n recomputePosition: false\r\n };\r\n }\r\n // Create a new clip object\r\n const clipPath = new Path(clipping.clipPath, {\r\n originX: clipping.originX,\r\n originY: clipping.originY,\r\n scaleX: clipping.scaleX * relativeProps.clipping.scaleX,\r\n scaleY: clipping.scaleY * relativeProps.clipping.scaleY,\r\n angle: clipping.rotateAngle + styles.angle,\r\n absolutePositioned: true,\r\n visible: true,\r\n selectable: false,\r\n evented: false,\r\n opacity: 1,\r\n fill: '#FFFFFF00',\r\n /**\r\n * Disable the scale cache so that the clip is updated along with the clipPath scaling.\r\n * If this is set to true, then the clip is not updated until after mouse drag for scaling is completed.\r\n */\r\n noScaleCache: false,\r\n // Disable align gridlines w.r.t other objects.\r\n skipAlign: true\r\n });\r\n const fabricObject = adLayer.fabricObject;\r\n let isClipActive = false;\r\n const hasClipShapeChanged = !adLayer.clipPath || JSON.stringify(adLayer.clipPath.path) != JSON.stringify(clipPath.path);\r\n if(adLayer.clipPath) {\r\n if(canvas.getActiveObject() == adLayer.clipPath) {\r\n isClipActive = true;\r\n }\r\n // Remove the old clip object from canvas\r\n removeClip(canvas, adLayer, isClipActive);\r\n }\r\n let position = {\r\n top: relativeProps.clipping.top,\r\n left: relativeProps.clipping.left\r\n }\r\n if(!isTemplateLoad && (!relativeProps.clipping.defaultsComputed || hasClipShapeChanged)) {\r\n // If this is not a loaded template AND\r\n // If this is first time clip is being added, OR if the clip shape has changed\r\n // Compute some 'sensible' defaults\r\n const relativeScales = getRelativeScalesForClip(\r\n clipPath,\r\n { scaleX: clipping.scaleX, scaleY: clipping.scaleY },\r\n fabricObject,\r\n canvas\r\n );\r\n clipPath.set({\r\n scaleX: clipping.scaleX * parseFloat(relativeScales.scaleX.toFixed(4)),\r\n scaleY: clipping.scaleY * parseFloat(relativeScales.scaleY.toFixed(4))\r\n });\r\n position = getPositionForClip(clipPath, fabricObject, canvas, styles.hasOriginChanged);\r\n Object.assign(relativeProps.clipping, { ...relativeScales, ...position, defaultsComputed: true });\r\n }\r\n else if(relativeProps.clipping.recomputePosition) {\r\n position = getPositionForClip(clipPath, fabricObject, canvas, styles.hasOriginChanged);\r\n Object.assign(relativeProps.clipping, { ...position, recomputePosition: false });\r\n }\r\n position.top += clipping.clipPositionOffsets.vOffset;\r\n position.left += clipping.clipPositionOffsets.hOffset;\r\n clipPath.set({ ...position });\r\n adLayer.clipPath = clipPath;\r\n canvas.add(clipPath);\r\n clipPath.setCoords();\r\n isClipActive && canvas.setActiveObject(clipPath);\r\n return clipPath;\r\n}\r\nconst removeClip = (canvas, adLayer, setObjectActive = true) => {\r\n if(adLayer.clipPath) {\r\n setObjectActive && canvas.setActiveObject(adLayer.fabricObject);\r\n canvas.remove(adLayer.clipPath);\r\n canvas.renderAll();\r\n adLayer.clipPath = null;\r\n }\r\n}\r\nconst boundClipPositionToObject = (clipPath, fabricObject) => {\r\n const objectHeight = fabricObject.getScaledHeight(),\r\n objectWidth = fabricObject.getScaledWidth()\r\n clipPath.setCoords();\r\n // top-left corner\r\n if(\r\n clipPath.getBoundingRect().top < fabricObject.getBoundingRect().top ||\r\n clipPath.getBoundingRect().left < fabricObject.getBoundingRect().left\r\n ){\r\n clipPath.top = Math.max(\r\n clipPath.top,\r\n clipPath.top - clipPath.getBoundingRect().top + fabricObject.getBoundingRect().top\r\n );\r\n clipPath.left = Math.max(\r\n clipPath.left,\r\n clipPath.left - clipPath.getBoundingRect().left + fabricObject.getBoundingRect().left\r\n );\r\n }\r\n // bot-right corner\r\n if(\r\n clipPath.getBoundingRect().top + clipPath.getBoundingRect().height >\r\n fabricObject.getBoundingRect().top + objectHeight ||\r\n clipPath.getBoundingRect().left + clipPath.getBoundingRect().width >\r\n fabricObject.getBoundingRect().left + objectWidth\r\n ){\r\n clipPath.top = Math.min(\r\n clipPath.top,\r\n objectHeight - clipPath.getBoundingRect().height + clipPath.top - clipPath.getBoundingRect().top + fabricObject.getBoundingRect().top\r\n );\r\n clipPath.left = Math.min(clipPath.left,\r\n objectWidth - clipPath.getBoundingRect().width + clipPath.left - clipPath.getBoundingRect().left + fabricObject.getBoundingRect().left\r\n );\r\n }\r\n};\r\nconst boundClipSizeToObject = (clipPath, fabricObject, previousState) => {\r\n const objectHeight = fabricObject.getScaledHeight(),\r\n objectWidth = fabricObject.getScaledWidth()\r\n clipPath.setCoords();\r\n //left border\r\n if(clipPath.getBoundingRect().left < fabricObject.getBoundingRect().left) {\r\n clipPath.left = previousState.left;\r\n clipPath.scaleX = previousState.scaleX\r\n } else {\r\n previousState.left = clipPath.left;\r\n previousState.scaleX = clipPath.scaleX;\r\n }\r\n //right border\r\n if((previousState.scaleX * clipPath.width) + clipPath.getBoundingRect().left >= fabricObject.getBoundingRect().left + objectWidth) {\r\n clipPath.scaleX = (fabricObject.getBoundingRect().left + objectWidth - clipPath.getBoundingRect().left) / clipPath.width;\r\n clipPath.setCoords();\r\n clipPath.left = objectWidth - (clipPath.scaleX * clipPath.width) + clipPath.left - clipPath.getBoundingRect().left + fabricObject.getBoundingRect().left\r\n } else {\r\n previousState.scaleX = clipPath.scaleX;\r\n }\r\n //top border\r\n if(clipPath.getBoundingRect().top < fabricObject.getBoundingRect().top) {\r\n clipPath.top = previousState.top;\r\n clipPath.scaleY = previousState.scaleY;\r\n } else {\r\n previousState.top = clipPath.top;\r\n previousState.scaleY = clipPath.scaleY;\r\n }\r\n //bottom border\r\n if((previousState.scaleY * clipPath.height) + clipPath.getBoundingRect().top >= fabricObject.getBoundingRect().top + objectHeight) {\r\n clipPath.scaleY = (fabricObject.getBoundingRect().top + objectHeight - clipPath.getBoundingRect().top) / clipPath.height;\r\n clipPath.setCoords();\r\n clipPath.top = objectHeight - (clipPath.scaleY * clipPath.height) + clipPath.top - clipPath.getBoundingRect().top + fabricObject.getBoundingRect().top\r\n } else {\r\n previousState.scaleY = clipPath.scaleY;\r\n }\r\n};\r\n\r\n//Calculates scaleX and scaleY based on fit options. used to support fit options in multiple sources\r\nconst calculateScaleForFitOption = (data, width, height) => {\r\n const fit = data.styles.selectedFit\r\n const { boundWidth, boundHeight } = data.props;\r\n let scaleX = Math.round((boundWidth / width) * 10000) / 10000;\r\n let scaleY = Math.round((boundHeight / height) * 10000) / 10000;\r\n\r\n switch (fit) {\r\n case imageFits.original:\r\n case imageFits.clipToBounds:\r\n data.styles.scaleX = 1;\r\n data.styles.scaleY = 1;\r\n break;\r\n case imageFits.stretchToFit:\r\n data.styles.scaleX = scaleX;\r\n data.styles.scaleY = scaleY;\r\n break;\r\n case imageFits.fitAndCrop:\r\n data.styles.scaleX = data.styles.scaleY = scaleX > scaleY ? scaleX : scaleY;\r\n break;\r\n case imageFits.fillToBounds:\r\n data.styles.scaleX = data.styles.scaleY = scaleX < scaleY ? scaleX : scaleY;\r\n break;\r\n case imageFits.crop:\r\n data.styles.scaleX = data.styles.scaleY = scaleX > scaleY ? scaleX : scaleY;\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\n\r\n// function to update image crop and position while swaping between image fit options\r\nconst updateImageCropAndPosition = (fabricObject, data, adLayoutPosition, styles, ad, source = null, isInDefaultVariant = false) => {\r\n let { width, height } = source ? source : getImageDimensions(data);\r\n if(isInDefaultVariant){\r\n // switching between fitoptions in default variant, need to set crop values to zero\r\n fabricObject.cropY = 0;\r\n fabricObject.cropX = 0;\r\n fabricObject.height = height;\r\n fabricObject.width = width;\r\n return;\r\n }\r\n let scaleX = data.props.boundWidth / width;\r\n let scaleY = data.props.boundHeight / height;\r\n\r\n //previous crop values has to reset to zero before apply any other change like cover, clip\r\n fabricObject.cropY = 0;\r\n fabricObject.cropX = 0;\r\n fabricObject.height = height;\r\n fabricObject.width = width;\r\n\r\n let newLayoutPosition;\r\n const fit = data.styles.selectedFit;\r\n switch (fit) {\r\n case imageFits.fitAndCrop:\r\n if (scaleX > scaleY) {\r\n fabricObject.cropY = (((height * styles.scaleX) - data.props.boundHeight) / 2) / styles.scaleY;\r\n fabricObject.height = data.props.boundHeight / styles.scaleX;\r\n fabricObject.width = data.props.boundWidth / styles.scaleX;\r\n } else {\r\n fabricObject.cropX = (((width * styles.scaleX) - data.props.boundWidth) / 2) / styles.scaleY;\r\n fabricObject.width = data.props.boundWidth / styles.scaleY;\r\n fabricObject.height = data.props.boundHeight / styles.scaleY;\r\n }\r\n // After cropping the image, we need to apply a new left and top position\r\n newLayoutPosition = getLayoutPosition({ width: ad.width, height: ad.height }, { width: data.props.boundWidth, height: data.props.boundHeight }, adLayoutPosition.positionIndex, adLayoutPosition.positionOffset, !styles.hasOriginChanged);\r\n break;\r\n case imageFits.crop:\r\n if (scaleX > scaleY) {\r\n fabricObject.height = data.props.boundHeight / styles.scaleX;\r\n fabricObject.width = data.props.boundWidth / styles.scaleX;\r\n } else {\r\n fabricObject.width = data.props.boundWidth / styles.scaleY;\r\n fabricObject.height = data.props.boundHeight / styles.scaleY;\r\n }\r\n // After cropping the image, we need to apply a new left and top position\r\n newLayoutPosition = getLayoutPosition({ width: ad.width, height: ad.height }, { width: data.props.boundWidth, height: data.props.boundHeight }, adLayoutPosition.positionIndex, adLayoutPosition.positionOffset, !styles.hasOriginChanged);\r\n break;\r\n case imageFits.clipToBounds:\r\n let changed = false;\r\n if(data.props.boundWidth < width){\r\n changed = true;\r\n fabricObject.width = data.props.boundWidth;\r\n }\r\n if(data.props.boundHeight < height){\r\n changed = true;\r\n fabricObject.height = data.props.boundHeight;\r\n }\r\n if(changed){\r\n newLayoutPosition = getLayoutPosition({ width: ad.width, height: ad.height }, { width: data.props.boundWidth, height: data.props.boundHeight }, adLayoutPosition.positionIndex, adLayoutPosition.positionOffset, !styles.hasOriginChanged);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n // whenever we crop the image we need to calcualte new layout position and apply to fabricObject\r\n if (newLayoutPosition) {\r\n fabricObject.left = newLayoutPosition.left;\r\n fabricObject.top = newLayoutPosition.top;\r\n }\r\n};\r\n\r\nmodule.exports = {\r\n relativeProximityFactor,\r\n hasScaleChanged,\r\n setScalingBounds,\r\n scaleToBoundSize,\r\n getPositionDiference,\r\n getRelativeScalesForClip,\r\n getPositionForClip,\r\n createClip,\r\n removeClip,\r\n boundClipPositionToObject,\r\n boundClipSizeToObject,\r\n calculateScaleForFitOption,\r\n updateImageCropAndPosition\r\n}","// Executes different flows depending on whether the env is node or browser.\r\n\r\nconst { FabricImage } = require('fabric');\r\nconst { layers: layerTypes } = require('../constants/layers');\r\nconst { defaultAudioBitrate, lastResetWait, positions } = require('../constants/animation');\r\nconst { timelineHelper } = require('../helpers/timelineHelper');\r\nconst { loadMediaElement, createVideoFabricObject, updateAudioLayer } = require('../helpers/commonMediaHelper.js');\r\nconst { setFfmpegLogging, getFfmpegLogs, clearFfmpegLogs } = require('../helpers/ffmpegHelper');\r\nconst { nodeNames } = require('../constants/commonData');\r\nconst { getComputedLayer, replaceWithCDN } = require('./commonHelper');\r\nconst { formatTimeToMilliseconds } = require('./Utils');\r\nconst { GoogleTextToSpeechService } = require('../services/googleTextToSpeechService');\r\n\r\nconst isNodeEnv = isNode();\r\n\r\nconst apiPayload = {\r\n token: '',\r\n baseUrl: '',\r\n bpId: null,\r\n get accessToken() {\r\n if (isNodeEnv) {\r\n return this.token;\r\n }\r\n else {\r\n return localStorage.getItem('accessToken');\r\n }\r\n },\r\n set accessToken(value) {\r\n this.token = value\r\n },\r\n get baseURL() {\r\n if (isNodeEnv) {\r\n return this.baseUrl;\r\n }\r\n else {\r\n return process.env.VUE_APP_API_URL;\r\n }\r\n },\r\n set baseURL(value) {\r\n this.baseUrl = value\r\n },\r\n get businessProfileId() {\r\n return this.bpId;\r\n },\r\n set businessProfileId(value) {\r\n this.bpId = value\r\n }\r\n}\r\n\r\nconst getAdHtmlCanvas = (ad) => {\r\n if (isNodeEnv) {\r\n return ad.canvas;\r\n }\r\n else {\r\n return document.getElementById(ad.adId);\r\n }\r\n}\r\n\r\nconst resetMedia = async (ad, adLayer, videoArrays, isForDownload, layers) => {\r\n if (isNodeEnv) {\r\n if (adLayer.type != layerTypes.video || !videoArrays || videoArrays.length == 0) {\r\n return;\r\n }\r\n var videoArray = videoArrays.find(v => v.id == adLayer.parentId);\r\n if (!videoArray.fileUrls || videoArray.fileUrls.length == 0) {\r\n return;\r\n }\r\n // On resetting, the first frame of video should be updated.\r\n await adLayer.fabricObject.setSrc(videoArray.fileUrls[0]);\r\n } else if (isForDownload) {\r\n if (adLayer.type != layerTypes.video) {\r\n return;\r\n }\r\n\r\n const mediaElement = adLayer.fabricObject && adLayer.fabricObject.getElement();\r\n // On downloading, fabric image object gets changed to image element.\r\n // Changing the fabric object to point to video element again.\r\n if (mediaElement.nodeName != nodeNames.video) {\r\n const videoElementBackup = adLayer.videoElementBackup;\r\n const videoDataLayer = getComputedLayer(layers, ad, adLayer.parentId);\r\n const videoFabricObject = await createVideoFabricObject(ad, videoElementBackup, videoDataLayer);\r\n adLayer.fabricObject = videoFabricObject;\r\n const oldFabricObjectIndex = ad.canvas._objects.findIndex(o => o.layerId && o.layerId == adLayer.parentId);\r\n ad.canvas._objects.splice(oldFabricObjectIndex, 1);\r\n ad.canvas.add(videoFabricObject);\r\n ad.canvas.moveObjectTo(videoFabricObject, oldFabricObjectIndex);\r\n ad.canvas.renderAll();\r\n delete adLayer.videoElementBackup;\r\n }\r\n } else {\r\n const mediaElement = adLayer.fabricObject.getElement();\r\n if(mediaElement.src) {\r\n mediaElement.currentTime = 0;\r\n await new Promise((resolve, reject)=>{\r\n mediaElement.addEventListener('seeked', (event) => {\r\n resolve();\r\n });\r\n });\r\n }\r\n }\r\n}\r\n\r\nconst renderAnimations = async (\r\n rafRequests,\r\n startTime,\r\n timelineTime,\r\n tweenGroup,\r\n resetGroup,\r\n ad,\r\n downloadConfig,\r\n allLoopsDuration,\r\n adHtmlCanvas,\r\n videoArrays,\r\n builder,\r\n renderOptions,\r\n animations,\r\n state\r\n) => {\r\n if (isNodeEnv) {\r\n // In case of download, the frames are looped manually and current time is calculated from fps.\r\n var framesPerLoop = Math.floor(ad.maxAdEndTime * renderOptions.framerate);\r\n var frameDuration = 1000 / renderOptions.framerate;\r\n for (let currentLoop = 0; currentLoop < downloadConfig.loopCount; currentLoop++) {\r\n var completedFrames = currentLoop * framesPerLoop;\r\n for (let currentFrame = 0; currentFrame <= framesPerLoop; currentFrame++) {\r\n if (currentFrame == 0 && currentLoop != 0) {\r\n continue;\r\n }\r\n let currentTime = (currentLoop * ad.maxAdEndTime * 1000) + (frameDuration * currentFrame);\r\n let frame = completedFrames + currentFrame;\r\n await render(tweenGroup, resetGroup, ad, downloadConfig, allLoopsDuration, currentTime, adHtmlCanvas, animations, state, videoArrays, frame, builder, renderOptions.framerate);\r\n }\r\n }\r\n }\r\n else {\r\n // Use window.requestAnimationFrame instead of fabric.util.requestAnimFrame\r\n // CCapture overrides window.requestAnimationFrame to ensure constant FPS\r\n // https://github.com/spite/ccapture.js/issues/14#issuecomment-860157669\r\n rafRequests.push(window.requestAnimationFrame(async function() {\r\n await renderAnimations(\r\n rafRequests,\r\n startTime,\r\n timelineTime,\r\n tweenGroup,\r\n resetGroup,\r\n ad,\r\n downloadConfig,\r\n allLoopsDuration,\r\n adHtmlCanvas,\r\n videoArrays,\r\n builder,\r\n renderOptions,\r\n animations,\r\n state\r\n );\r\n }));\r\n // rendering stuff ... Read more about this render loop here - https://github.com/spite/ccapture.js#using-the-code\r\n let ct = Date.now();\r\n let currentTime = (ct - startTime) + timelineTime;\r\n if (downloadConfig.loopCount && !downloadConfig.isMediaRecorder) {\r\n await render(tweenGroup, resetGroup, ad, downloadConfig, allLoopsDuration, currentTime, adHtmlCanvas, animations, state, videoArrays, null, builder, renderOptions.framerate);\r\n } else {\r\n await render(tweenGroup, resetGroup, ad, downloadConfig, allLoopsDuration, currentTime, adHtmlCanvas, animations, state);\r\n }\r\n }\r\n}\r\n\r\nconst render = async (\r\n tweenGroup,\r\n resetGroup,\r\n ad,\r\n downloadConfig,\r\n allLoopsDuration,\r\n currentTime,\r\n adHtmlCanvas,\r\n animations,\r\n state,\r\n videoArrays,\r\n frame,\r\n builder,\r\n framerate\r\n) => {\r\n await timelineHelper.updateSources(state, ad, currentTime);\r\n tweenGroup.group.update(currentTime);\r\n // In case of ad download, video will be split into frames instead of generating html element.\r\n // While rendering the frames, the corresponding video frame according to current time will be captured and\r\n // fabric.Image will be updated.\r\n if (isNodeEnv || (downloadConfig.loopCount && !downloadConfig.isMediaRecorder)) {\r\n var videoLayers = ad.layers.filter(l => l.type == layerTypes.video);\r\n await videoLayers.forEachAsync(async layer => {\r\n let newCurrentTime = (currentTime > (ad.maxAdEndTime * 1000)) ? (currentTime % (ad.maxAdEndTime * 1000)) : currentTime;\r\n const videoAnimations = animations.find(a => a.layerId === layer.parentId);\r\n const layerStartTime = videoAnimations[positions.start].startTime * 1000;\r\n const layerEndTime = videoAnimations[positions.end].endTime * 1000;\r\n const computedLayer = getComputedLayer(state.layers, ad, layer.parentId);\r\n const videoStartTime = computedLayer.data.props.startTime * 1000;\r\n const videoEndTime = computedLayer.data.props.endTime * 1000;\r\n computedLayer.data.props.src = replaceWithCDN(computedLayer.data.props.src);\r\n let duration = formatTimeToMilliseconds(computedLayer.data.props.duration);\r\n // video has been trimmed\r\n if ((videoEndTime - videoStartTime) < duration) {\r\n duration = videoEndTime - videoStartTime\r\n }\r\n // Fabric video object should be loaded with empty image on 3 conditions:\r\n // 1. When layer start time is not reached, video should not start\r\n // 2. When current time goes out of bound of layer end time\r\n // 3. When the layer animation duration is long enough and actual video finishes before it\r\n // Additional condition for (3) is loop should not be enabled\r\n if (newCurrentTime < layerStartTime\r\n || newCurrentTime > layerEndTime\r\n || (newCurrentTime > (layerStartTime + duration) && !computedLayer.data.props.loop)) {\r\n await layer.fabricObject.setSrc('', { crossOrigin: 'anonymous' });\r\n } else {\r\n const videoArray = videoArrays.find(v => v.id === layer.parentId && v.src === computedLayer.data.props.src);\r\n // if loop is enabled and currentTime goes out of bound of video duration,\r\n // we need to make sure currentTime is always under video start and end time,\r\n // so that correct frame is chosen\r\n if (computedLayer.data.props.loop && newCurrentTime > (layerStartTime + duration)) {\r\n newCurrentTime = ((newCurrentTime - layerStartTime) % duration) + videoStartTime;\r\n } else {\r\n newCurrentTime = newCurrentTime - layerStartTime + videoStartTime;\r\n }\r\n if (layer.fabricObject && videoArray && videoArray.fileUrls && videoArray.fileUrls.length > 0) {\r\n // Calculating the frame of video to be displayed based on current time.\r\n let currentFrame = Math.round((newCurrentTime * framerate) / 1000);\r\n let renderFile = videoArray.fileUrls[currentFrame];\r\n if (!renderFile) {\r\n renderFile = videoArray.fileUrls[videoArray.fileUrls.length - 1];\r\n }\r\n await layer.fabricObject.setSrc(renderFile);\r\n }\r\n }\r\n });\r\n }\r\n resetGroup.update(currentTime);\r\n ad.canvas.renderAll();\r\n if (downloadConfig.loopCount && !downloadConfig.isMediaRecorder) {\r\n if (currentTime < allLoopsDuration)\r\n builder.capture({\r\n canvas: adHtmlCanvas,\r\n frame\r\n });\r\n else\r\n resetGroup.update(allLoopsDuration + lastResetWait);\r\n }\r\n}\r\n\r\n// No need to generate media elements in case of node\r\nconst generateMediaElements = async (state, layer, ad, timeline, animation, downloadLoopCount, ads, tweenLayer, tweenGroup, timelineTime, loopCount, adVideos, computedLayer) => {\r\n let isAudioPresent = false;\r\n if (!isNodeEnv && !downloadLoopCount) {\r\n isAudioPresent = await timelineHelper.generateHtmlMediaElements(\r\n state,\r\n layer,\r\n ad,\r\n timeline,\r\n animation,\r\n ads,\r\n tweenLayer,\r\n tweenGroup,\r\n timelineTime,\r\n loopCount,\r\n adVideos,\r\n computedLayer\r\n );\r\n }\r\n return isAudioPresent;\r\n}\r\n\r\nconst getAudioContext = () => {\r\n if (isNodeEnv) {\r\n var dummyAudioContext = function () {\r\n function createMediaStreamDestination() {\r\n return {\r\n aStream: null\r\n }\r\n }\r\n return {\r\n createMediaStreamDestination\r\n }\r\n }\r\n return new dummyAudioContext();\r\n }\r\n else {\r\n return new AudioContext();\r\n }\r\n}\r\n\r\n// Need to create audio/video html elements only in browser. There is no use for html media elements in node, hence return empty.\r\nconst createVideoElementForCanvas = async (ad, props) => {\r\n if (isNodeEnv) {\r\n return '';\r\n }\r\n else {\r\n let videoUrl = props.renderSrc || props.src;\r\n videoUrl = replaceWithCDN(videoUrl);\r\n var videoElement = document.createElement('video');\r\n videoElement.id = 'video_' + ad.adId;\r\n videoElement.src = videoUrl;\r\n await initializeMediaElement(videoElement, ad);\r\n videoElement.width = videoElement.videoWidth;\r\n videoElement.height = videoElement.videoHeight;\r\n return videoElement;\r\n }\r\n}\r\n\r\nconst updateVideoElement = async (fabricObject, newSrc) => {\r\n if (!isNodeEnv) {\r\n let videoElement = fabricObject.getElement();\r\n videoElement.src = replaceWithCDN(newSrc);\r\n await loadMediaElement(videoElement);\r\n videoElement.width = videoElement.videoWidth;\r\n videoElement.height = videoElement.videoHeight;\r\n return videoElement;\r\n }\r\n}\r\n\r\nconst createAudioElementForCanvas = async (ad, props) => {\r\n if (isNodeEnv) {\r\n return '';\r\n }\r\n else {\r\n var audioElement = document.createElement('audio');\r\n audioElement.id = 'audio_' + ad.adId;\r\n if (props.useTts) {\r\n const ttsData = await getSpeechData(props);\r\n if (ttsData) {\r\n audioElement.src = ttsData;\r\n }\r\n } else {\r\n audioElement.src = props.src;\r\n }\r\n if (audioElement.src) {\r\n await initializeMediaElement(audioElement, ad);\r\n }\r\n return audioElement;\r\n }\r\n}\r\n\r\nconst createAudioFabricObject = async (ad, layer) => {\r\n layer.data.props.src = replaceWithCDN(layer.data.props.src);\r\n const audioElement = await createAudioElementForCanvas(ad, layer.data.props);\r\n if (isNodeEnv) {\r\n return new FabricImage();\r\n }\r\n else {\r\n var audioObject = new FabricImage(audioElement, {\r\n ...layer.data.styles,\r\n objectCaching: false\r\n }, {\r\n crossOrigin: 'anonymous'\r\n });\r\n\r\n return audioObject;\r\n }\r\n}\r\n\r\nconst updateAudioElement = async (fabricObject, data, state, layerToUpdate) => {\r\n if (isNodeEnv) {\r\n await getSpeechData(data.props);\r\n var existingLayer = state.layers.find(layer => layer.id == layerToUpdate.parentId);\r\n updateAudioLayer(existingLayer, data);\r\n }\r\n else {\r\n const audioElement = fabricObject.getElement();\r\n if (data.props.useTts) {\r\n const ttsData = await getSpeechData(data.props);\r\n if (ttsData) {\r\n audioElement.src = ttsData\r\n } else {\r\n // When an empty string is assigned to the src attribute of an HTML